二進位制和十六進製制的互相轉換比較重要。不過這二者的轉換卻不用計算,每個c,c++程式設計師都能做到看見二進位制數,直接就能轉換為十六進製制數,反之亦然。
我們也一樣,只要學完這一小節,就能做到。
首先我們來看乙個二進位制數:1111,它是多少呢?
你可能還要這樣計算:1 * 2^0 + 1 * 2^1 + 1 * 2^2 + 1 * 2^3 = 1 * 1 + 1 * 2 + 1 * 4 + 1 * 8 = 15。
然而,由於1111才4位,所以我們必須直接記住它每一位的權值,並且是從高位往低位記,:8、4、2、1。即,最高位的權值為2^3 = 8,然後依次是 2^2 = 4,2^1=2, 2^0 = 1。
記住8421,對於任意乙個4位的二進位制數,我們都可以很快算出它對應的10進製值。
下面列出四位二進位制數 ***x 所有可能的值(中間略過部分)
僅4位的2進製數快速計算方法 十進位制值 十六進值
1111 = 8 + 4 + 2 + 1 = 15 f
1110 = 8 + 4 + 2 + 0 = 14 e
1101 = 8 + 4 + 0 + 1 = 13 d
1100 = 8 + 4 + 0 + 0 = 12 c
1011 = 8 + 0 + 2+ 1 = 11 b
1010 = 8 + 0 + 2 + 0 = 10 a
1001 = 8 + 0 + 0 + 1 = 9 9
0001 = 0 + 0 + 0 + 1 = 1
0000 = 0 + 0 + 0 + 0 = 0 0
二進位制數要轉換為十六進製制,就是以4位一段,分別轉換為十六進製制。
如(上行為二制數,下面為對應的十六進製制):
1111 1101 , 1010 0101 , 1001 1011
f d , a 5 , 9 b
反過來,當我們看到 fd時,如何迅速將它轉換為二進位制數呢?
先轉換f:
看到f,我們需知道它是15(可能你還不熟悉a~f這六個數),然後15如何用8421湊呢?應該是8 + 4 + 2 + 1,所以四位全為1 :1111。
接著轉換 d:
看到d,知道它是13,13如何用8421湊呢?應該是:8 + 4+0+ 1,即:1101。
所以,fd轉換為二進位制數,為: 1111 1101
由於十六進製制轉換成二進位制相當直接,所以,我們需要將乙個十進位制數轉換成2進製數時,也可以先轉換成16進製制,然後再轉換成2進製。
比如,十進位制數 1234轉換成二制數,如果要一直除以2,直接得到2進製數,需要計算較多次數。所以我們可以先除以16,得到16進製制數:
被除數 計算過程 商
餘數1234 1234/16 77 2
77 77/16 4 13 (d)
4 4/16 0 4
結果16進製為: 0x4d2
然後我們可直接寫出0x4d2的二進位制形式: 0100 1101 0010。
其中對映關係為:
0100 -- 4
1101 -- d
0010 -- 2
同樣,如果乙個二進位制數很長,我們需要將它轉換成10進製數時,除了前面學過的方法是,我們還可以先將這個二進位制轉換成16進製制,然後再轉換為10進製。
下面舉例乙個int型別的二進位制數:
01101101 11100101 10101111 00011011
我們按四位一組轉換為16進製制: 6d e5 af 1b
二進位制,十進位制,十六進製制計算
一.在計算機應用中,二進位制使用字尾b表示 十進位制使用字尾d表示,十六制使用字尾h表示。二.二進位制,十六進製制與十進位制的計算轉換 1.二進位制轉換為十進位制 計算公式 二進位制資料x位數字乘以2的x 1次方的積的總和 例 10101011b d資料10 1010 11x 1位76 5432 1...
十進位制 二進位制 十六進製制轉換
十進位制轉二進位制 十六進製制我覺得最簡單也最方便的辦法就是直接用計算器算了。如果不依賴工具,那我們要如何去計算呢。先來說說二進位制。最多見的是短除法。所謂短除法大家可以去看看 這個百科裡面的詳細明了的解釋。我想補充的一點是 如果你嫌短除法太過於麻煩,可以在拿到乙個二進位制數的時候直接用2 n去減。...
二進位制 十進位制 十六進製制互轉
1.介紹 2進製 用兩個阿拉伯數字表示,0 1 10進製 用十個阿拉伯數字表示,0到9 0 1 2 3 4 5 6 7 8 9 16進製制 0到9 0 1 2 3 4 5 6 7 8 9 a到f a,b,c,d,e,f 16進製制說明 這五個字母來分別表示10,11,12,13,14,15 字母不區...