首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

signed char a = 0xb6;将a转换成signed int型,为什么值是0xffffffb6呢?解决办法

2012-04-22 
signed char a 0xb6将a转换成signed int型,为什么值是0xffffffb6呢?这中间过程是怎么样的。想了很久,还

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

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

热点排行