鸡啄米
最新评论及回复
-
3230. 广州试管婴儿:
路过一下!!2014/5/21 18:08
-
3229. yueyixing11:
第一:char不一定是有符号,标准规定这是编译器相关的,所以第一个的例子最好加上signed.第二:给signed char赋值0xFF,是有问题的,标准规定unsigned类型的溢出是取模,对于signed类型的溢出是未定义的,所以这个在不同的编译器上可能会出现不同的值。对于楼主所用的编译器来说是是直接把0xFF赋给了ch[6],然后因为是带符号的,所以把0xFF按照负数的补码来解释,就是-1.
第三:只是分析了编译器的实现,没有说为什么会这样操作。
其实,这里涉及了整型提升和符号扩展两个问题。抛开编译器的实现细节,对于第一个例子来说,signed char类型的ch[7]先被提升为int,然后乘以256,最后加上上面得出的-1(此时也会被提升为整型,signed char的-1变为int类型的-1,你看一下他们的补码就知道为什么必须进行符号扩展了),所以0xF*128+(-1)=3839即0xEFF。yueyixing11 于 2014-5-21 17:00:15 回复更正一下,最后应该是0xF*256+(-1)=3839即0xEFF
2014/5/21 16:57
-
3228. 广州试管婴儿:
路过一下!!2014/5/20 20:20
-
3227. 试管婴儿成功日记:
路过就应该要评论一下.2014/5/20 16:34
-
3226. phenixyf:
感谢鸡啄米,学到非常多实用的东西,感谢无私的受教;2014/5/20 16:23