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

关于有符号,无符号char与int其间的转换

2012-10-31 
关于有符号,无符号char与int之间的转换char(0x86) to int of value-122unsigned char(0x86) to int of va

关于有符号,无符号char与int之间的转换

char(0x86) to int of value=-122unsigned char(0x86) to int of value=134Press any key to continue

?

int a=(char)0x86;

在内存中是用补码表示:1000 0110,

这个是直接作为补码赋给a的,通过符号位扩展那么a就是1111 1111 1111 1111 1000 0110,转换成原码就是
1000 0000 0000 0000 0111 1010, 即十进制的-122

?

int b = (unsigned char)0x86;
在内存中是用原码表示:1000 0110,

这个是直接作为原码赋给b的,通过符号位扩展那么b就是0000 0000 0000 0000 1000 0110,即十进制的134

?

注意: 补码补齐的时候是用1,原码是用0------------这样理解不知道有问题没?望大家指正

热点排行