回覆列表
  • 1 # 啾一口軟糖阿

    學了好長時間,今天終於真正理解了計算機中負數的儲存,終於理解了補碼的運算!

    1、補碼的運算:

    已知十進位制求二進位制

    求正整數的二進位制補碼

    除2取餘,直到商為零,餘數倒敘排列

    求負整數的二進位制

    先求該負數絕對值的二進位制程式碼,然後將二進位制程式碼的所有位取反,再加1,然後在左邊補1作為符號位。如果要求用更多的位來表示,則相應的在符號位的左邊補1就行了。下面隨便列舉了一些數字,其他的相應模仿就行了:

    負數:-5絕對值:5絕對值的二進位制碼:101二進位制反碼:010二進位制補碼:011左邊再不一位1表示負數,即1011 = (-1)*8+0*4+1*2+1*1 = -5

    補碼8位表示:11111011 = (-1)*(2^7)+1*(2^6)+1*(2^5)+1*(2^4)…… = -5

    補碼16位16進製表示:FFFB = -5

    以下的幾個數的例子的計算過程同上: 負數:-14絕對值:14絕對值的二進位制碼:1110二進位制反碼:0001二進位制補碼:10010 = -14

    補碼8位16進製表示:F2 = -14

    補碼16位16進製表示:FFF2 = -14

    負數:-27絕對值:27絕對值的二進位制碼:11011二進位制反碼:00100二進位制補碼:100101 = -27

    補碼8位16進製表示:E5 = -27

    補碼16位16進製表示:FFE5 = -27

    負數:-79絕對值:79絕對值的二進位制碼:1001111二進位制反碼:0110000二進位制補碼:10110001

    補碼8位16進製表示:B1

    補碼16位16進製表示:FFB1

    負數:-127絕對值:127絕對值的二進位制碼:1111111二進位制反碼:0000000二進位制補碼:10000001

    補碼8位16進製表示:81

    補碼16位16進製表示:FF81

    負數:-128絕對值:128絕對值的二進位制碼:10000000二進位制反碼:01111111二進位制補碼:10000000

    補碼8位16進製表示:80

    補碼16位16進製表示:FF80

    行啦,就舉這麼多,再多就囉嗦了。下面再說一下計算機中n位二進位制補碼的十進位制表示範圍。

    2、n位二進位制補碼的十進位制表示範圍

    8位二進位制補碼最大能表示的正整數應該是127,即二進位制為01111111,其中最左邊0為符號位,表示正數。8位二進位制補碼最小能表示的負整數應該是-128,即二進位制為10000000,其中最左邊1為符號位,表示負數,即(-1)*(2^7)。

    其他的以此類推。

  • 中秋節和大豐收的關聯?
  • 紅色短款羽絨服搭配什麼顏色的長款毛衣?