有符号机器数的范围

我在学习C语言的过程中遇到一个问题,那就是一个占2字节,即16位的有符号机器数(此处是基本整型),它能表示的范围是-2^15~2^15-1 右边的界限很好理解,但是为什么在表示负数时会达到-2^15呢,比如说,共有3位的话,那么最小应该是表示到-3才对呀,即-2^2 1才对呀,请帮忙解释一下,谢谢!
54cfan.cn答:给你个程序,自己看了以后好好理解。
main()
{int x,y;
x=32767,y=x 1;
printf("%d,%d\n",x,y);
}
运行结果:32767,-32768
这是因为字长里最高位为1表示负数,为0表示正数。32767就表示为0111111111111111(15个1),即为2^15-1,32767加1后就为1000000000000000(15个0),它是-32768的补码形式。
建议你好好温习一下补码。

54cfan.cn答:感谢风起★枫落的精彩解答
54cfan.cn答:有什么好琢磨的,整型不行就用浮点型啊,这些问题好像没啥意思……建议楼主少研究这类问题,知道就可以了,否则走火入魔就不好呵

54cfan.cn答:

(编辑:aisy)

【已有0位网友发表了看法,点击查看。】

推荐资讯 »

视频推荐

最近更新软件推荐

打造电脑爱好者者乐园 766it.com

电脑爱好者QQ群1:8225196群2:2375353群3:41112669