鸡啄米
最新评论及回复
-
3233. 广州试管婴儿:
路过一下!!2014/5/22 22:26
-
3232. 阿兰:
好!2014/5/22 22:13
-
3231. ASRER:
你对我的帮助是很大的,谢谢
但是,我有一个问题,我按你的方式添加了,可是我的资源文件里面找不到啊,也没有显示添加失败(ps:文件的格式是正确的)2014/5/22 17:07
-
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