8421轉換法可以輕鬆實現各進製之間的轉換

2021-10-19 10:54:24 字數 1298 閱讀 2298

8421轉換法可以輕鬆實現各進製之間的轉換

1.10進製轉二進位制

例:10進製10轉換成二進位制

首先按照8421來分解:10=2+8,用8421轉換法,對應數字下面寫1,沒有的寫0,得到:

8421

1010

也就是說10進製的轉換成2進製等於1010,此時或許有人會問,如果這個數大於15(8+4+2+1)咋辦?很簡單,在前面新增個16,如果再大於31,就再在前面加個32

例:10進製21轉換成二進位制

21=16+4+1,接下來,老規矩

168421

1010 1

例:10進製35轉換成二進位制

35=32+2+1

32168421

100011

2.二進位制轉10進製

例:2進製1011轉換成十進位制

8421

1011

8+2+1=11(d)

二進位制1011就是10進製的11(其實是上面方法的逆過程!

3.10進製轉16進製制

例:10進製52轉換成16進製制

52=32+16+4

32 16 8 4 2 1

1 1 0 1 0 0

從右到左4位4位的進行分割,位數不足的在左邊添0

得到00110100

8 4 2 1 8 4 2 1

0 0 1 1 0 1 0 0

(1+2)*10+4*1=34(h)

4.10進製轉8進製

例:10進製52轉換成8進製(421碼)

52=32+16+4

32 16 8 4 2 1

1 1 0 1 0 0

從右到左3位3位的進行分割,位數不足的在左邊添0

4 2 1 4 2 1

1 1 0 1 0 0

(4+2)*10+1*4=64(o)

5.16進製制轉8進製

例:16進製制2a轉換成8進製

把每一位進行8421分解:

2=0010(b)

a=1010(b)

從右到左3位3位的進行分割,位數不足的在左邊添0

4 2 1 4 2 1 4 2 1

0 0 0 1 0 1 0 1 0

(4+1)*10+2=52(o)

6.8進製轉16進製制

例:8進製64轉換成16進製制

6=110(b)

4=100(b)

從右到左4位4位的進行分割,位數不足的在左邊添0

8 4 2 1 8 4 2 1

0 0 1 1 0 1 0 0

(2+1)*10+4=34(h)

組合之01轉換法

m個數中取n個數的所有組合問題 從左到右掃瞄陣列元素值的 10 組合,找到第乙個 10 組合後將其變為 01 組合,同時將其左邊的所有 1 全部移動到陣列的最左端 如下 include using namespace std define size 100 struct data inline vo...

23 裡式轉換法則

1 子類可以賦值給父類 2 如果父類中裝的是子類物件,那麼可以講這個父類強轉為子類物件。例如 namespace demo class student person class program 注意 子類物件可以呼叫父類中的成員,但是父類物件永遠都只能呼叫自己的成員。is 表示型別轉換,如果能夠轉換...

67 二進位制求和 轉換法

難度 簡單 在利用字串相加法的過程,有遇到乙個問題,就是在申請字串記憶體空間的時候,容易報錯,這是由於strlen 和sizeof 函式對於求字串長度不同導致的 c語言中沒有字串,用的是字元陣列來模擬字串。c風格的字串時字元陣列然後在末尾加 0 表示結尾。在c語言中有strlen和sizeof兩個函...