導航:首頁 > 源碼編譯 > 進位制演算法

進位制演算法

發布時間:2024-01-05 17:41:10

A. 進位制的計算方法

十六進制換算十進制 安全展開 按十六進制格式位數乘以16的X位次方
十六進制換算二進制 除法 除以二得余數倒過來念
十六進制換算八進制 未知 我也不會算

八進制換算二進制 除法 除以二得余數倒過來念
八進制換算十進制 安全展開 按八進制格式位數乘以8的X位次方
八進制換算十六進制 未知 我也不會算

十進制換算二進制 除法 除以二得余數倒過來念
十進制換算八進制 除法 除以八得余數倒過來念
十進制換算十六進制 除法 除以十六得余數倒過來念

二進制換算十進制 安全展開 按二進制格式位數乘以二的X位次方
二進制換算八進制 從右到左,三位一組,不夠補0 ,3個數分別對應4 2 1的進行乘法然後象加
二進制換算十六進制 從右到左,四位一組,不夠補0 ,4個數分別對應8 4 2 1的進行乘法然後象加

安全展開的含義:

比如 二進制 「1101100」
從右起"0"到左尾部"1"止 倒過來排位:
1101100 ←二進制數
6543210 ←排位方法

例如二進制換算十進制的演算法:

1 * 26 + 1 * 25 + 0 * 24 + 1 * 23 + 1 * 22 + 0 * 21 + 0 * 20

↑ ↑
進制 後面的數是
次方,也就
是2的6次方

2的6次方等於2*2=4*2=8*2=16*2=32*2=64.....
等於:

64+32+0+8+4+0+0
=108

二進制換算八進制十六進制最簡單的方法:

如二進制的「10110111011」:
換八進制時,從右到左,三位一組,不夠補0,即成了:
010 110 111 011
然後每組中的3個數分別對應4、2、1的狀態,然後將為狀態為1的相加,如:
010 = 2
110 = 4+2 = 6
111 = 4+2+1 = 7
011 = 2+1 = 3
結果為:2673

而換十六進制時其實也類似,只要每組4位,分別對應8、4、2、1就行了,如分解為:
0101 1011 1011
運算為:
0101 = 4+1 = 5
1011 = 8+2+1 = 11(由於10為A,所以11即B)
1011 = 8+2+1 = 11(由於10為A,所以11即B)
結果為:5BB

二進制數轉換為十進制數
二進制數第0位的權值是2的0次方,第1位的權值是2的1次方……
所以,設有一個二進制數:0110 0100,轉換為10進制為:
下面是豎式:

0110 0100 換算成 十進制

第0位 0 * 20 = 0
第1位 0 * 21 = 0
第2位 1 * 22 = 4
第3位 0 * 23 = 0
第4位 0 * 24 = 0
第5位 1 * 25 = 32
第6位 1 * 26 = 64
第7位 0 * 27 = 0 +
---------------------------
100

用橫式計算為:
0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100

0乘以多少都是0,所以我們也可以直接跳過值為0的位:
1 * 22 + 1 * 23 + 1 * 25 + 1 * 26 = 100

八進制數轉換為十進制數
八進制就是逢8進1。
八進制數採用 0~7這八數來表達一個數。
八進制數第0位的權值為8的0次方,第1位權值為8的1次方,第2位權值為8的2次方……
所以,設有一個八進制數:1507,轉換為十進制為:
用豎式表示:

1507換算成十進制。

第0位 7 * 80 = 7
第1位 0 * 81 = 0
第2位 5 * 82 = 320
第3位 1 * 83 = 512 +
--------------------------
839
同樣,我們也可以用橫式直接計算:
7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839

結果是,八進制數 1507 轉換成十進制數為 839

十六進制數轉換成十進制數
2進制,用兩個阿拉伯數字:0、1;
8進制,用八個阿拉伯數字:0、1、2、3、4、5、6、7;
10進制,用十個阿拉伯數字:0到9;
16進制,用十六個阿拉伯數字……等等,阿拉伯人或說是印度人,只發明了10個數字啊?

16進制就是逢16進1,但我們只有0~9這十個數字,所以我們用A,B,C,D,E,F這五個字母來分別表示10,11,12,13,14,15。字母不區分大小寫。
十六進制數的第0位的權值為16的0次方,第1位的權值為16的1次方,第2位的權值為16的2次方……
所以,在第N(N從0開始)位上,如果是是數 X (X 大於等於0,並且X小於等於 15,即:F)表示的大小為 X * 16的N次方。
假設有一個十六進數 2AF5, 那麼如何換算成10進制呢?

用豎式計算:

2AF5換算成10進制:

第0位: 5 * 160 = 5
第1位: F * 161 = 240
第2位: A * 162 = 2560
第3位: 2 * 163 = 8192 +
-------------------------------------
10997
直接計算就是:
5 * 160 + F * 161 + A * 162 + 2 * 163 = 10997
(別忘了,在上面的計算中,A表示10,而F表示15)

現在可以看出,所有進制換算成10進制,關鍵在於各自的權值不同。
假設有人問你,十進數 1234 為什麼是 一千二百三十四?你盡可以給他這么一個算式:
1234 = 1 * 103 + 2 * 102 + 3 * 101 + 4 * 100

進製表

10 8 16 2
0 0 0 0
1 1 1 1
2 2 2 10
3 3 3 11
4 4 4 100
5 5 5 101
6 6 6 110
7 7 7 111
8 10 8 1000
9 11 9 1001
10 12 A 1010
11 13 B 1011
12 14 C 1100
13 15 D 1101
14 16 E 1110
15 17 F 1111
16 20 10 10000
17 21 11 10001
18 22 12 10010
19 23 13 10011
20 24 14 10100
21 25 15 10101
22 26 16 10110
23 27 17 10111
24 30 18 11000
25 31 19 11001
26 32 1A 11010
27 33 1B 11011
28 34 1C 11100
29 35 1D 11101
30 36 1E 11110
31 37 1F 11111
32 40 20 100000
.
.
.
.
47 57 2F 101111
48 60 30 110000
.
.
.
.
.等等!

閱讀全文

與進位制演算法相關的資料

熱點內容
android基礎組件 瀏覽:656
建興app怎麼變成黑色了 瀏覽:51
文件壓縮包如何加密文件 瀏覽:183
2010提出的演算法 瀏覽:674
冰櫃壓縮機的壽命 瀏覽:105
辦公室采訪程序員 瀏覽:569
美橙雲伺服器購買 瀏覽:754
漢語詞典pdf下載 瀏覽:353
android公網ip 瀏覽:613
要塞1地圖放哪個文件夾 瀏覽:850
凡科建站怎麼弄伺服器 瀏覽:939
蘋果手機怎麼設置app播放 瀏覽:202
下載網站源碼用什麼瀏覽器 瀏覽:241
六線譜pdf 瀏覽:156
linuxmysqlsock 瀏覽:239
人教版數學pdf下載 瀏覽:460
文檔安全加密系統 瀏覽:492
數控銑床編程簡單數字 瀏覽:788
編程電纜如何重啟 瀏覽:121
myqq命令行發消息 瀏覽:365