❶ 進位制的計算方法
十六進制換算十進制 安全展開 按十六進制格式位數乘以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
.
.
.
.
.等等!
❷ 計算機1級考試的進制怎麼算
計算機1級考試中,進制的計算主要包括二進制、十六進制與十進制之間的轉換,具體演算法如下:
1. 二進制數、十六進制數轉換為十進制數: 按權求和:將二進制數或十六進制數的每一位乘以對應的權值,然後將這些乘積相加,得到的結果就是其對應的十進制數。
2. 十進制數轉換為二進制數、十六進制數: 十進制轉二進制:將十進制數除以2,記錄余數;再將商繼續除以2,再次記錄余數,如此反復,直到商為0。最後,將得到的余數逆序排列,即為該十進制數的二進製表示。 十進制轉十六進制:方法類似十進制轉二進制,只是將除數由2改為16,記錄余數並逆序排列,即可得到該十進制數的十六進製表示。
3. 二進制數與十六進制數之間的轉換: 二進制數可以較容易地轉換為十六進制數,方法是每4位二進制數為一組,然後將每組二進制數轉換為對應的十六進制數。 十六進制數轉換為二進制數則是上述過程的逆過程,即將每位十六進制數轉換為4位二進制數。
❸ 二進制演算法公式和示例
1、加法法則: 0+0=0,0+1=1+0=1,1+1=10
2、減法法則: 0 - 0 = 0 1 - 0 = 1 1 - 1 = 0 0 - 1 = 1 有借位,借1當(10)2 0 - 1 - 1 = 0 有借位 1 - 1 - 1 = 1 有借位。減法,當需要向上一位借數時,必須把上一位的1看成下一位的(2)10。
3、乘法法則: 0×0=0,0×1=1×0=0,1×1=1
4、除法法則: 0÷1=0,1÷1=1
除法應注意: 0÷0 = 0 0÷1 = 0 1÷0 = 0 (無意義)
二進制是計算技術中廣泛採用的一種數制。二進制數據是用0和1兩個數碼來表示的數。它的基數為2,進位規則是「逢二進一」,借位規則是「借一當二」,由18世紀德國數理哲學大師萊布尼茲發現。當前的計算機系統使用的基本上是二進制系統,數據在計算機中主要是以補碼的形式存儲的。計算機中的二進制則是一個非常微小的開關,用「開」來表示1,「關」來表示0。
將正的十進制數除以二,得到的商再除以二,依次類推知道商為零或一時為止,然後在旁邊標出各步的余數,最後倒著寫出來,高位補零就OK咧。
二進制和十進制
大家都知道十進制是滿十進一,舉個例子9+1=10;89+1=90;
二進制和十進制這個地方也是相似的,是滿2進1,舉例子:01+1=10;
二進制的原碼,反碼,補碼。
原碼就是:十進制數轉換成二進制變成的二進制數或者可以說待處理的二進制數都可一說成原碼。
反碼:就是原碼所有取反(1變0,0變1);
補碼:就是反碼加一。(補碼就是負數在計算機中的二進製表示方法,求補碼的十進制就是:補碼減一取反加負號)。
擴展
「|」(按位或):1|0=0|1=1|1=1;0|0=0(數的對應位只要有1,則為1;反之,則為0)。
「^」(按位異或):1^1=0^0=0;0^1=1^0=1;(相同異或為0;不同異或為1)。
「~」(按位取反):~1=0;~0=1;(1變0,0變1,並且符號位參與運算就是正數取反是負數,負數取反是正數)。
「」(按位左移):c=a
「>>」(有符號的右移):c=a>>b;(a右移b位,左邊補符號位。注意:負數以原碼參與運算)。
「>>>」(無符號的右移):c=a>>>b;(a右移b位。左邊補0。注意:所有數據以無符號的方式參與運算)。
關於Java的二進制一些小命令
Integer.toBinaryString(a);(把a值轉換為2進制)
Integer.valueOf("a", 2);(把2進制的a轉換為int值)