signed char a = 0xb6;将a转换成signed int型,为什么值是0xffffffb6呢?
这中间过程是怎么样的。想了很久,还是不理解
[解决办法]
0xb6是负数,是用补码表示的,百度一下就知道了
[解决办法]
符号扩展
[解决办法]
对于signed 类型的扩展,根据符号为判断,也就是左边第一位的值,
如果是1,则扩展的位全部是1,否则是0.
unsigned的扩展,全部补零
发布时间: 2012-04-22 18:34:46 作者: rapoo
signed char a = 0xb6;将a转换成signed int型,为什么值是0xffffffb6呢?
这中间过程是怎么样的。想了很久,还是不理解
[解决办法]
0xb6是负数,是用补码表示的,百度一下就知道了
[解决办法]
符号扩展
[解决办法]
对于signed 类型的扩展,根据符号为判断,也就是左边第一位的值,
如果是1,则扩展的位全部是1,否则是0.
unsigned的扩展,全部补零