二进制中1000000000000000为何表示-32768。它的原码和补码一样,也是16位但

已举报 回答 关注

二进制中1000000000000000为何表示-32768。它的原码和补码一样,也是16位但

  • 回答数

    9

  • 浏览数

    10,309

9个回答 默认排序
  • 默认排序
  • 按时间排序

已采纳
数有字长规定。如果是 4 字节整型, 最高位是符号位。
正数的原码,反码,补码 是一样的。
负数才分 原码,反码,补码。
计算机为了充分利用 内存能表达的 数据点,假定正0负0一样。数据具体范围 在 编译器 头文件 limits.h 中 有明确 规定。 INT_MAX,INT_MIN.
你的数,也可以打印出来看。
int a=0x8000;
printf("%d %u %x\n",a,a,a );
取消 评论
可以像我这样理解:把-128-127分成两部分-128-(-1)为一部分,0-127为另外一部分,这样的话 不就对称了吗?两边都有128个数
记住一个规则,求一个数的补码的办法:取反加1比如:01111111为127那么-127的补码(取反加1)为10000001然后在减1就变成了10000000,-127减1之后就为128了
为什么求一个负数的补码的方法是求反加1呢?
01111111+ 127+
10000000= -128=
11111111 -1

01111111+
10000001=
00000000
所以求一个负数的补码的方法是求反加1(对什么求反,对负数对应的正数的原玛求反
取消 评论
介绍沈括
取消 评论
XP最小要求是256M.所以还是用98的好.
取消 评论
这个数是规定的,如果没有这个规定,补码1000 0000 0000 0000的反码是1111 1111 1111 1111,原码是1000 0000 0000 0000,也就是-0,-0和0相等。而0000 0000 0000 0000也是0,所以规定1000 0000 0000 0000表示-2^15=-32768
取消 评论
因为原码的0有“正0”和“负0”,而补码的0只有一种表示方法。
10000000表示为原码的“负0”而在补码中表示-128。
取消 评论
建议用98 如果用xp 连打开文件夹都卡
取消 评论
16位二进制原码、反码表示的整数范围是-32767~+32767,
16位二进制补码表示的整数范围是-32768~+32767
取消 评论
加载全部9个答案 加载中...
ZOL问答 > 二进制中1000000000000000为何表示-32768。它的原码和补码一样,也是16位但

举报

感谢您为社区的和谐贡献力量请选择举报类型

举报成功

经过核实后将会做出处理
感谢您为社区和谐做出贡献

提示

确定要取消此次报名,退出该活动?