進製轉換總結

2021-10-21 02:29:54 字數 2194 閱讀 6951

前言:

在學習計算機組成原理第二章-運算方法和運算器時,遇到了進製轉換問題,作為計算機學生,關於進製轉換還是要清楚了解的,很早就想總結下來了,這裡就記錄一些計算方法.

文章大概內容:十進位制,二進位制,間整,小數轉換

十進位制轉換為n進製,用其數對n不斷取餘,直到商為零為止,然後逆序排列其餘數,得到的數即是n進製後的結果:

如圖所示:

將十進位制數字 36926 轉換成八進位制的過程:

從圖中得知,十進位制數字 36926 轉換成八進位制的結果為 110076。

十進位制小數轉換成 n 進製小數採用「乘 n 取整,順序排列」法。具體做法是:

把取出的整數部分按順序排列起來,先取出的整數作為 n 進製小數的高位數字,後取出的整數作為低位數字,這樣就得到了 n 進製小數。

如圖所示:

將十進位制小數 0.930908203125 轉換成八進位制小數的過程:

十進位制小數 0.930908203125 轉換成八進位制小數的結果為 0.7345。

八進位制:

八進位製作為二進位制的一種書寫形式,其基數為8,有0~7共8個不同的數字符號,計數"逢八進一",因為r=8=2的三次方,所以只要把二進位制中的三位數嘛編為一組就是一位八進位制數碼,兩者之間的轉換極為方便.

十六進製制:

十六進製制也是二進位制的一種常用書寫形式,其基數為16,「逢十六進一」.每個數為可取0~9,a,b,c,d,e,f中的任意乙個,其中a,b,c,d,e,f分別表示10 ~ 15 .因為r=16=2的4次方,因此4為二進位制數碼與一位是十六進製制數碼相對應.

其實,任何進製之間的轉換都可以使用上面講到的方法,只不過有時比較麻煩,所以一般針對不同的進製採取不同的方法。將二進位制轉換為八進位制和十六進製制時就有非常簡潔的方法,反之亦然。

二進位制整數和八進位制整數之間的轉換

二進位制整數轉換為八進位制整數時,每三位二進位制數字轉換為一位八進位制數字,運算的順序是從低位向高位依次進行,高位不足三位用零補齊。下圖演示了如何將二進位制整數 1110111100 轉換為八進位制:

從圖中可以看出,二進位制整數 1110111100 轉換為八進位制的結果為 1674。

八進位制整數轉換為二進位制整數時,思路是相反的,每一位八進位制數字轉換為三位二進位制數字,運算的順序也是從低位向高位依次進行。下圖演示了如何將八進位制整數 2743 轉換為二進位制:

從圖中可以看出,八進位制整數 2743 轉換為二進位制的結果為 10111100011。

二進位制整數和十六進製制整數之間的轉換

二進位制整數轉換為十六進製制整數時,每四位二進位制數字轉換為一位十六進製制數字,運算的順序是從低位向高位依次進行,高位不足四位用零補齊。下圖演示了如何將二進位制整數 10 1101 0101 1100 轉換為十六進製制:

從圖中可以看出,二進位制整數 10 1101 0101 1100 轉換為十六進製制的結果為 2d5c。

十六進製制整數轉換為二進位制整數時,思路是相反的,每一位十六進製制數字轉換為四位二進位制數字,運算的順序也是從低位向高位依次進行。下圖演示了如何將十六進製制整數 a5d6 轉換為二進位制:

從圖中可以看出,十六進製制整數 a5d6 轉換為二進位制的結果為 1010 0101 1101 0110。

在c語言程式設計中,二進位制、八進位制、十六進製制之間幾乎不會涉及小數的轉換,所以這裡我們只講整數的轉換,大家學以致用足以。另外,八進位制和十六進製制之間也極少直接轉換,這裡我們也不再講解了。

本文參考其下面文件,前人總結的非常好,為了能儲存下來,另一方面讓自己有個梳理的過程,我便記錄下了這篇文章.

參考文件

進製轉換題型總結

01 數制轉換 思路 以十進位制為跳板,實現低位數 換成十進位制後資料在long long以內 的進製轉換 a b進製模板 0 include using namespace std int a,b,num 10 0 char str 40 ans 40 int main 10進製轉換為b進製 取餘...

JS進製轉換總結

如 0xf5 轉 十進位制,使用 parseint f5 16 進行轉換,結果為 245。結果沒錯,但不是我想要的結果。js 在轉換時,把 0xf5 看作是多位元組的,高位位元組補 0。完整格式為 0x000000f5 或者 0x0000000000000000f5 反正比0xf5單位元組大 二進位...

PHP進製轉換函式總結

1.十進位制轉其他進製 1 decbin 十進位制轉二進位制函式 echo decbin 12 輸出1100 2 decoct 十進位制轉八進位制函式 echo decoct 15 輸出 17 3 dechex 十進位制轉十六進製制函式 echo dechex 10 輸出 a 2.二進位制轉其他進製...