python3筆記二:進制轉換與原碼反碼補碼

一:學習內容學習

  • 進制:二進制、八進制、十進制、十六進制
  • 進制轉換
  • 原碼、反碼、補碼

 

二:進制
spa

  •  二進制blog

1.二進制:只有0和1,逢2進1二進制

2.舉例:0+0=0、0+1=一、1+1=10im

3.過程剖析:二進制11+1=100數據

1+1=0進1,1+1=0進1,故爲100img

 

  • 八進制

1.八進制:0到7,逢8進1計算機

2.舉例:1+7=十、1+2=3co

 

  • 十進制

1.十進制:0到9,逢10進1數字

 

  • 十六進制

1.說明:0 1 2 3 4 5 6 7 8 9 a b c d e f,逢16進1,a至關於十進制的10,b至關於十進制的11

2.舉例:1+f=10,即1+15=16,逢16進1,即10

 

  • 進制轉換

1.十進制轉二進制:倒除法,餘數逆序

10(10)--->1010(2)

 

2.二進制轉十進制:當前的數字,乘以2的位數次方,最後相加,位數從0開始算

1010(2)--->10(10)
1010=0*2^0+1*2^1+0*2^2+1*2^3=2+8=10

 

3.二進制轉八進制:三位一取:從低位開始取,高位不夠補0

110101(2)--->65(8)
110爲6,由於0*2^0+1*2^1+1*2^2=6
101爲5,由於1*2^0+0*2^1+1*2^2=5

 

4.二進制轉十六進制:四位一取:從低位開始取,高位不夠補0

10100100(2)--->a4(16)
1010爲10即a,由於0*2^0+1*2^1+0*2^2+1*2^3=10
0100爲4即4,由於0*2^0+0*2^1+1*2^2+0*2^3=4

 

5.八進制轉二進制:一轉三位:八進制的一位至關於二進制的三位,轉換時按照十進制轉換

65(8)----->110101(2)
6爲110,由於0*2^0+1*2^1+1*2^2=6
5爲101,由於1*2^0+0*2^1+1*2^2=5

 

6.十六進制轉二進制:一轉四位:十六進制的一位至關於二進制的四位,轉換時按照十進制轉換

a4(16)---->10100100(2)
a爲10即1010,由於0*2^0+1*2^1+0*2^2+1*2^3=10
4爲0100,由於0*2^0+0*2^1+1*2^2+0*2^3=4

 

三:原碼、反碼、補碼

1.原碼:規定了字節數,寫明瞭符號位,就獲得了數據的原碼

2.反碼:正數的反碼是其原碼,負數的反碼是其原碼的符號位不動,其餘位取反即0變成1,1變成0

3.補碼:正數的補碼是其原碼,負數的補碼是其反碼的最低位加1

4.舉例

1的原碼、反碼、補碼:

原碼:00000000  00000000  00000000  00000001
反碼:00000000  00000000  00000000  00000001
補碼:00000000  00000000  00000000  00000001

 

-1的原碼、反碼、補碼:

原碼:10000000  00000000  00000000 00000001
反碼:11111111    11111111    11111111   11111110
補碼:11111111    11111111    11111111   11111111

 

故1+(-1)的結果爲:

1的補碼:00000000  00000000  00000000  00000001
-1的補碼: 11111111    11111111    11111111     11111111
-1+1補碼結果:00000000  00000000  00000000  00000000
該補碼的原碼爲0,即爲0

 

5.說明:

補碼最高位爲正數時原碼即爲補碼,補碼最高位爲負數時則符號位不變其餘位取反而後最低位加1得原碼

計算機中存儲和計算都是用補碼進行的,可是輸出來給咱們看是要將補碼算成原碼給咱們看的

相關文章
相關標籤/搜索