今天师兄拿腾讯今年招实习生的笔试题给我问我下面这道题答案是什么:
signed char a = 0xe0;
unsigned int b = a;
unsigned char c = a;
下面说法正确的是:
A:(a>0)&& (b>0)B:(c == 0 )为真 C:b的十六进制为0xffffffe0 D:以上说法都不对
答案应该是选C的。
首先signed char 是一个字节大小,最高位为符号位,显然a<0;c==0这个一看就是错的。

本文介绍了Signed和Unsigned类型在赋值转换时的规则:Unsigned转Signed会高位补0,Signed转Unsigned则根据符号位填充高位。
最低0.47元/天 解锁文章
3644

被折叠的 条评论
为什么被折叠?



