读书人

数值溢出演算

发布时间: 2012-08-09 15:59:21 作者: rapoo

数值溢出运算

char chr=127;int sum=100;chr+=1;sum+=chr;

chr是char类型,共八位。赋值127。8位为0111 1111。

此时若用%d格式打印出来时,规则是,看最左侧为0.为正,

绝对值为2^7-1,即127。chr++后,

二进制为1000 0000。用%d打印出来为,最左侧为1,为负值。

绝对值,要考虑8位。及2^7.即为-128。

char类型的变量,8位,若有符号,范围为-128~~127。若

无符号,为0~~255。所以,sum的值为100+(-128)=-128


-1如何表示呢?

是1的反码+1.即0xFFFF FFFF



读书人网 >编程

热点推荐