鱼C论坛

 找回密码
 立即注册
查看: 860|回复: 2

[已解决]关于补码的问题

[复制链接]
发表于 2022-1-3 01:04:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
可以理解一个字节中表达的最大值是127,但是不明白为什么最小值是-128,希望能通俗易懂一点,谢谢
最佳答案
2022-1-3 17:12:37
知识点传送门
4. 补码
计算机是用补码的形式来存放整数的值。
正数的补码是该数的二进制形式。
负数的补码需要通过以下几步获得:
  • 先取得该数的绝对值的二进制形式
  • 再将第1步的值按位取反
  • 最后将第2步的值加1

换种方式说:8位只能表示256个数,0到255,但我还想表示一些负数怎么办呢?
就用与该负数同余的正数来表示呗。-1=255,-2=254,等等。
建议脱离算数的思维方式,这其实就是一个环。
举个例子用以上的方式求一下-127的补码:
  • 绝对值二进制形式:0111 1111
  • 按位取反:1000 0000
  • 加一:1000 0001

得出与-127同余的正数为129
则得出-128同余的正数为128
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-1-3 08:02:56 From FishC Mobile | 显示全部楼层
0至127 共 128(包括 0)
-1至-128 共 128
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-1-3 17:12:37 | 显示全部楼层    本楼为最佳答案   
知识点传送门
4. 补码
计算机是用补码的形式来存放整数的值。
正数的补码是该数的二进制形式。
负数的补码需要通过以下几步获得:
  • 先取得该数的绝对值的二进制形式
  • 再将第1步的值按位取反
  • 最后将第2步的值加1

换种方式说:8位只能表示256个数,0到255,但我还想表示一些负数怎么办呢?
就用与该负数同余的正数来表示呗。-1=255,-2=254,等等。
建议脱离算数的思维方式,这其实就是一个环。
举个例子用以上的方式求一下-127的补码:
  • 绝对值二进制形式:0111 1111
  • 按位取反:1000 0000
  • 加一:1000 0001

得出与-127同余的正数为129
则得出-128同余的正数为128
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 03:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表