Chinaunix
标题:
请教C类型转换??
[打印本页]
作者:
linfenghuaster
时间:
2010-08-28 22:05
标题:
请教C类型转换??
在面试宝典里有道题
unsigned char a = 0xa5;
unsigned char b = ~a >> 4;
printf("b = %d\n", a);
复制代码
~运算符优先级比 >> 高,那么对a取反的时候,要不对a 先进行类型提升啊? 迷惑了。
作者:
tempname2
时间:
2010-08-29 09:13
不太清楚。
貌似出现在表达式里的char全都要类型提升,unsigned char提升为啥就不知道了。移位以后再转回char。
作者:
bruceteen
时间:
2010-08-29 09:23
要!
但,提升 还是 不提升 对你的结果不影响
作者:
daybreakcx
时间:
2010-08-29 10:26
话说你最后怎么还是输出a啊~~
作者:
linfenghuaster
时间:
2010-08-29 12:50
回复
4#
daybreakcx
打错了,呵呵。输出是b.
作者:
linfenghuaster
时间:
2010-08-29 12:53
回复
2#
tempname2
unsigned char 应该提升成 int
作者:
linfenghuaster
时间:
2010-08-29 12:56
回复
3#
bruceteen
哦,3q.
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2