程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> java中原碼、反碼與補碼的問題分析

java中原碼、反碼與補碼的問題分析

編輯:JAVA編程入門知識
1.原碼、反碼和補碼定義

1.原碼

將最高位作為符號位(以0代表正,1代表負),其余各位代表數值本身的絕對值(以二進制表示)。
為了簡單起見,我們用1個字節來表示一個整數。
     +7的原碼為: 00000111
     -7的原碼為: 10000111

2.反碼

一個數如果為正,則它的反碼與原碼相同;一個數如果為負,則符號位為1,其余各位是對原碼取反。
為了簡單起見,我們用1個字節來表示一個整數:
     +7的反碼為:00000111
     -7的反碼為: 11111000

3.補碼

補碼:一個數如果為正,則它的原碼、反碼、補碼相同;一個數如果為負,則符號位為1,其余各位是對原碼取反,然後整個數加1。為了簡單起見,我們用1個字節來表示一個整數:
+7的補碼為: 00000111
-7的補碼為: 11111001

已知一個負數的補碼,將其轉換為十進制數,步驟:
      1、先對各位取反;
      2、將其轉換為十進制數;
      3、加上負號,再減去1。
      例如:
      11111010,最高位為1,是負數,先對各位取反得00000101,轉換為十進制數得5,加上負號得-5,再減1得-6。

2.常見問題

我把int a=232;進行強轉為byte類型時為什麼是負數???

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved