Java 原始碼,反碼和補碼

Bytezero!發表於2024-03-05

  計算機在對資料進行運算的原理?
  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 二進位制的補碼形式

  3的補碼和-2的補碼 相當於進行相加
  00000011
  11111110
  --------
  100000001 一共就1個位元組byte = 8bit 所以就去掉了前面進1的一位 = 00000001

                                00000001 二進位制的原碼形式
                               00000001 二進位制的反碼形式
                               00000001 二進位制的補碼形式
                              將二進位制的原碼形式 變十進位制
                                    = 1

相關文章