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兩個函...