首頁>Club>
請通俗一點,最好有列子
8
回覆列表
  • 1 # 科技搜

    引入原碼 反碼 和補碼的目的就是為了解決減法問題,因為計算機CPU的運算器中只有加法器,要把減法轉化成加法來計算.

    舉個例子,A表示十進位制數“+16”,B表示十進位制數“-19”,把這兩個數的原碼直接相加,得:

    A=+16 (A)原=00010000

    B=-19 (B)原=1001001100010000 +10010011

    ————

    10100011

    其結果符號位為1是負數,其數值位為100011,即等於十進位制數“-35”,這顯然是錯的結果.再比如,十進位制數“+16”與“+19”的原碼直接相減,得:

    00010000 -00010011

    ————

    11111101

    結果為“-125”,這又是錯的.

    但是引入補碼後,加減法都可以用加法來實現,如“-16+11”的運算:

    11110000 + -16的補碼

    00001011 11的補碼

    ————

    11111011 -5的補碼

    如果是“-16-11”,那麼就轉化為加法運算“-16+(-11)”

    11110000 + -16的補碼11110101 -11的補碼

    ————

    111100101 -27的補碼

    在字長為8位的系統中,最高位所產生的進位被自然丟棄,運算結果的機器數為11100101,是-27的補碼形式,結果正確.

    順便告訴你一些其它的東西:

    1.二進位制數中,兩數的補碼之和等於兩數和的補碼.

    2.補碼=反碼+1

    3.反碼=原碼除符號位外其它數值取反(即該數的絕對值取反),即“0”變“1”,“1”變“0”.

    4.任何正數的原碼 反碼 補碼的形式完全相同(即都是自身,不變)

    5.在計算機中,有符號的數都是採用補碼來表示的.

    6.計算的時候,符號位也參與運算.

  • 中秋節和大豐收的關聯?
  • 為什麼在起亞K4-1.6T低速行駛情況下,有時候會出現頓挫感?