看或不看bug都在那里 2017-07-14 12:22 采纳率: 0%
浏览 916

两个关于二进制的问题

问题1:
图片说明
截图是百度百科“二进制补码”的说明。图中红框中的数据是怎么由上一步得来的?

问题2:
1个字节的数值范围为什么是-128~+127 ? 是为什么不是-127~+127 ?
谢谢!

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-07-15 01:00
    关注
     垃圾百度怎么说的不重要,以我下面说的为准:
    假设是4位二进制整数
    1 + (-1)
    =0001 + 1111
    =(1)0000 (前面假想的1是进位,实际上不存在)
    =0
    
    1个字节表示的范围是00000000~11111111
    00000000~01111111是0~127
    10000000~11111111是-128~-1
    合起来就是-128~127
    
    为什么10000000是-128,因为负数补码是最高位符号位1转化为-号,其余取反以后-1
    所以10000000转换为-(1111111) - 1=-127 - 1=-128
    类似11111111转换为-(0000000) - 1=-0 - 1=-1
    
    评论

报告相同问题?

悬赏问题

  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办