-32768换成二进制占了符号位了,为何不是-32767?

int不知是16位的还是32位的,反正16位的话,能表示的数的范围是-32768~32767.可是32768的二进制补码是1000,0000,0000,0000,已经把符... int不知是16位的还是32位的,反正16位的话,能表示的数的范围是-32768~32767.

可是32768的二进制补码是1000,0000,0000,0000,已经把符号位占了,最小能表示的数应该和正数对应也是32767呀,加上符号位就是-32767=1111,1111,1111,1111,何来-32768?
展开
 我来答
kaixingui2012
2015-10-21 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6383万
展开全部

在16位机上,整数类型占2个字节,有符号数的表示范围为:-32768~32767

二进制表示数据,用首位表示符号位,其余位来表示数值,这种方法表示出来的数称为原码。 但这样会出现“正0”和“负0”数据,与现实中数的应用不符,而且,用原码也不方便计陆消算机进行运算。所以,科学家们提出了补码概念,用来在计算机中存储整数。

规定:

  • 正数的补码与原码相同指芦

  • 0的表示形式为000...000 (16位全是0)

  • 负数的补码为反码早逗知加1

按此规定,“负0”就变成了-32768

-1  = 1111111111111111

-2 =  1111111111111110

。。。。

-32768=1000000000000000

这是推算的结果,也可以说是规定的结果

wjinbd
2009-11-04 · TA获得超过8686个赞
知道大有可为答主
回答量:1536
采纳率:100%
帮助的人:2007万
展开全部
你算错了吧

-32768的补码握芹者首颂是 正好是(按照16位来算)

1000,0000,0000,0000

补码是绝对值的二进制每一位取反在加1

-32768绝对值 是 32678
二进制形式是
1000,0000,0000,0000
每位取反
变成0111,1111,1111,1111
在加1
正好1000,,0000,0000,0000

所以他正好-32768啊段薯
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式