随笔 - 322  文章 - 0  评论 - 4  阅读 - 76858

Java 源码,反码和补码

  计算机在对数据进行运算的原理?
  3 - 2 = 1
  3 + (-2) = 1

  先将3这个十进制,变成二进制的原码形式,然后变成反码形式,最后变成补码形式
  先将-2这个十进制,变成二进制的原码形式,然后变成反码形式,最后变成补码形式
  将这两个数二进制的补码形式参与运算会得到一个二进制补码形式
  然后再将这个二进制的补码形式最终变回二进制的原码形式,然后再变成十进制,等得到 1


  正数的原码反码和补码的转换规则?
  正数的原码,反码和补码是一样的

  负数的原码和反码和补码的转换规则?
  负数的原码变反码,符号位不变,其余的0变1,1变0
  负数的原码变补码,只需要+1

  符号位:二进制的最左边的那一个位,就称为符号位,正数的符号位是0,负数的符号位是1

  原码、反码和补码
  3 - 2 = 1

  3(十进制变为2进制)8bit                                    -2
  00000011 二进制的原码形式                                10000010 二进制的原码形式
  00000011 二进制的反码形式                 11111101 二进制的反码形式
  00000011 二进制的补码形式            11111112--> 11111110 二进制的补码形式(逢2进1)

  3的补码和-2的补码 相当于进行相加
  00000011
  11111110
  --------
  100000001 一共就1个字节byte = 8bit 所以就去掉了前面进1的一位 = 00000001

                               00000001 二进制的原码形式
                               00000001 二进制的反码形式
                               00000001 二进制的补码形式
                              将二进制的原码形式 变十进制
                                    = 1

posted on   Bytezero!  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示