【Java基础】如何求 -128 的补码

1、提出问题

用八位的二进制来表示,-128补码是1000 0000,那为什么是1000 0000呢???

用8位的二进制来表示一个数,它的范围是-128~127,按照书本求补码是这样的:原码 → 反码 → 补码

现在问题来了:8位2进制数的源码范围只能到达127,那-128的补码是怎么得来的呢???

2、解决问题

参考文章:在8位二进制中,-128 没有原码、反码形式,那么它的补码是怎么计算出来的?还是约定的?

参考映射表:

+----------------------------+
| 255      -1      11111111  |
| 254      -2      11111110  |
| 253      -3      11111101  |
| 252      -4      11111100  |
| 251      -5      11111011  |
| 246      -10     11110110  |
| 236      -20     11101100  |
| 226      -30     11100010  |
| 216      -40     11011000  |
| 206      -50     11001110  |
| 196      -60     11000100  |
| 186      -70     10111010  |
| 156      -100    10011100  |
| 129      -127    10000001  |
| 128      -128    10000000  |
| 127      127     01111111  |
| 100      100     01100100  |
| 70       70      01000110  |
| 60       60      00111100  |
| 50       50      00110010  |
| 40       40      00101000  |
| 30       30      00011110  |
| 20       20      00010100  |
| 10       10      00001010  |
| 5        5       00000101  |
| 4        4       00000100  |
| 3        3       00000011  |
| 2        2       00000010  |
| 1        1       00000001  |
| 0        0       00000000  |
+----------------------------+

8位二进制数的模是256,参考映射表来看的话:

  • 0-127 的数都是正数,可以直接表示
  • 当我要求 -1 补码时(8位2进制数),可以这样求:256-1=255,255的二进制数是1111 1111

3、总结

  1. 负数的表达方式就是它绝对值的补数

  2. 在8位二进制数中,0-127表示正数,128-255表示负数

大佬的肩膀

-128补码

在8位二进制中,-128 没有原码、反码形式,那么它的补码是怎么计算出来的?还是约定的?

物竞天择,适者生存,加油吧 !!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值