读书人

signed char a = 0xb6;将a转换成signe

发布时间: 2012-04-22 18:34:46 作者: rapoo

signed char a = 0xb6;将a转换成signed int型,为什么值是0xffffffb6呢?
这中间过程是怎么样的。想了很久,还是不理解

[解决办法]
0xb6是负数,是用补码表示的,百度一下就知道了
[解决办法]
符号扩展
[解决办法]
对于signed 类型的扩展,根据符号为判断,也就是左边第一位的值,
如果是1,则扩展的位全部是1,否则是0.
unsigned的扩展,全部补零

读书人网 >C语言

热点推荐