标题:请问怎么交换一个字符的前四位与后四位,然后输出交换后的字符
只看楼主
千里之外W
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2013-8-10
结帖率:50%
已结贴  问题点数:2 回复次数:6 
请问怎么交换一个字符的前四位与后四位,然后输出交换后的字符
谢谢,急用
2013-12-26 14:25
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:1 
先获取前四位,然后把后四位移位,再把前四位加进去

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-12-26 14:36
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:1 
我无聊,翻译一下C中移位的规定:

1。每个操作数都应当是整数类型

2。每个操作数都先进行整型提升,结果类型是左操作数整型提升后的类型。如果右操作数为负数或大于等于左操作数整型提升后的位宽度,其行为是未定义的(the behavior is undefined)

3。对于E1<<E2
如果E1是unsigned类型:结果是……(地球人都知道),溢出时保留低位。
如果E1是signed类型:值为非负,且不溢出,结果是……(地球人都知道);否则,其行为是未定义的(the behavior is undefined)

4。对于E1>>E2
如果E1是unsigned类型,或者为signed类型但值非负,结果是……(地球人都知道)
如果E1是signed类型,且值为负,结果是 实现定义的(implementation-defined)。
2013-12-26 16:13
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
对于字符类型,C语言中一共有三个,分别是 char、signed char 和 unsigned char
char 是signed还是unsigned,由编译器自行决定。
但即使编译器将char设为signed类型,char  和 signed char 仍属于两个不同的类型,虽然此时两者行为一致
但即使编译器将char设为unsigned类型,char  和 unsigned char 仍属于两个不同的类型,虽然此时两者行为一致
2013-12-26 16:31
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
(char)( ((unsigned char)c<<4) | ((unsigned char)c>>4) )
2013-12-26 16:31
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:1 
交换是可以  但是交换后 未必就是可输出(可见)字符了

DO IT YOURSELF !
2013-12-27 08:15
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:0 
以下是引用rjsp在2013-12-26 16:31:09的发言:

对于字符类型,C语言中一共有三个,分别是 char、signed char 和 unsigned char
char 是signed还是unsigned,由编译器自行决定。
但即使编译器将char设为signed类型,char  和 signed char 仍属于两个不同的类型,虽然此时两者行为一致
但即使编译器将char设为unsigned类型,char  和 unsigned char 仍属于两个不同的类型,虽然此时两者行为一致

我没想这么多

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-12-27 08:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-425723-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.102168 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved