數據加載中……
          原碼,反碼,和補碼

          在java中一個字節由8個二進位組成。

          計算機中有原碼,反碼,和補碼。

          原碼

          將最高為作為符號位0正,1負。其余各位表示數值的絕對值。

          +7的原碼是 00000111

          -7的原碼是 10000111

          原碼的問題是+0和-0的表示

          +0是00000000

          -0是 10000000

          2個數值不同。

          反碼

          一個數如果為正,則它的反碼與原碼相同,如果為負,則符號位為1,其余取反。

          +7是00000111

          -7 是 11111000

          反碼的問題也是+0和-0的問題

          +0是 00000000

          -0 是 11111111

          2個數值不同。

          補碼

          利用溢出,我們將減法變成加法。 一個數如十進制,一個字節一個數,有8位,超過就進一。

          一個數為正,則它的原碼,反碼,補碼相同。如果為負,則符號位為1,其余對原碼取反。然后加1

          +7是 00000111

          -7是 11111001

          +0是00000000

          -0是100000000,然后丟掉最高的9位則為00000000

          和+0的表示相同,所以計算機中是采用的是補碼。

          已知一個負數的補碼,轉換為十進制。

          1. 先對各位取反。
          2. 將其轉換為十進制數
          3. 加上負號,再減去1.

          如 11111010 先取反

          00000101 轉換為十進制

          是5 加上負號

          是-5 再減去1

          是-6

          posted on 2008-02-28 15:02 rick 閱讀(443) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 赣州市| 肇庆市| 漯河市| 大理市| 汤阴县| 白水县| 高雄市| 建瓯市| 博白县| 历史| 来凤县| 扎囊县| 屯留县| 英德市| 尖扎县| 凤山市| 余干县| 宜州市| 广丰县| 阳高县| 和政县| 凤翔县| 沁阳市| 阳泉市| 枣强县| 同德县| 苍山县| 江门市| 进贤县| 合水县| 灵宝市| 巧家县| 浦江县| 延安市| 马边| 贵溪市| 招远市| 涟源市| 洛扎县| 东海县| 永春县|