huhaoer
全部博文(91)
考试题(0)
幽默与思考(2)
一句话精彩问答(5)
CCNA辅助资料1(13)
2011年(1)
2010年(4)
2009年(86)
Bsolar
qq197062
分类: C/C++
2009-06-12 10:53:41
#include <stdio.h>void main(){ short int n=0x7fff,m=n+1; printf("%d,%d\n",n,m);}
程序运行结果为:32767,-32768
(1)short int型占用2字节
(2)计算机中数值是以补码形式存放(但输出是原码),负数的补码为除符号位其余位取反后加1,负数的源码为补码除符号位每位取反加1.
(3)m(补码)=n(补码)+1=1000,0000,0000,0000,故m(原码)=-((000,0000,0000,0000)取反+1)=-1000,0000,0000,0000=-32768
上一篇:字符的强制转换(int)
下一篇:printf语句的求值
登录 注册