十進位制 十六進製制 二進位制之間的轉換(僅作記錄)

2022-09-11 19:06:11 字數 1678 閱讀 8949

二進位制和十六進製制的互相轉換比較重要。不過這二者的轉換卻不用計算,每個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 字母不區...