如何將十進位制轉換為八進位制?


十進位制系統是公眾最熟悉的數字系統。它是基數為10的系統,只有10個符號——0、1、2、3、4、5、6、7、8和9。而八進位制系統是表示數字的眾多數字系統之一。它是基數為8的系統,只有8個符號——0、1、2、3、4、5、6和7。

從十進位制到八進位制的轉換

將十進位制數轉換為八進位制數有多種直接或間接方法。在間接方法中,你需要將十進位制數轉換為其他數字系統(例如,二進位制或十六進位制),然後你可以透過將十六進位制中的每個數字轉換為二進位制數,並使用八進位制系統的分組來轉換為二進位制數。

示例——將十進位制數98轉換為八進位制數。

First convert it into binary or hexadecimal number,
= (98)10

= (1x26+1x25+0x24+0x23+0x22+1x21+0x20)10 or (6x161+2x160)10 Because base of binary and hexadecimal are 2 and 16 respectively. = (1100010)2 or (62)16 Then convert each digit of hexadecimal number into 4 bit of binary number whereas convert each group of 3 bits from least significant in binary number. = (001 100 010)2 or (0110 0010)2 = (001 100 010)2 = (1 4 2)8 = (142)8

然而,有兩種直接方法可以將十進位制數轉換為八進位制數——用餘數轉換和用除法轉換。這些方法將在下面解釋。

(a) 用餘數轉換(針對整數部分)

這是一個簡單的方法,它涉及到對要轉換的數字進行除法。設十進位制數為N,然後用8除以這個數字,因為八進位制系統的基數是8。記下餘數的值,它將是——0、1、2、3、4、5、6或7。再次除以剩餘的十進位制數,直到它變成0,並記下每一步的餘數。然後從下往上(或反向)寫下餘數,這將是給定十進位制數的等效八進位制數。這是轉換整數十進位制數的過程,演算法如下所示。

  • 將十進位制數作為被除數。

  • 用8除以這個數(8是八進位制的基數,所以這裡是除數)。

  • 將餘數儲存在一個數組中(它將是:0、1、2、3、4、5、6或7,因為除數是8)。

  • 重複以上兩步,直到數字大於零。

  • 反向列印陣列(這將是給定十進位制數的等效八進位制數)。

請注意,被除數(此處為給定的十進位制數)是被除的數,除數(此處為八進位制的基數,即8)是被除數除以的數,商(剩餘的十進位制數)是除法的結果。

示例——將十進位制數210轉換為八進位制數。

由於給定的數字是十進位制整數,因此使用上述演算法用8進行短除法,並計算餘數。

除法餘數 (R)
210 / 8 = 262
26 / 8 = 32
3 / 8 = 03

現在,從下往上(反向)寫下餘數,這將是322,它是十進位制整數210的等效八進位制數。

但是上述方法不能轉換混合數(帶有整數和小數部分的數)的八進位制數的小數部分。對於十進位制小數部分,方法如下所示。

(b) 用餘數轉換(針對小數部分)

設十進位制小數部分為M,然後用8乘以這個數字,因為八進位制系統的基數是8。記下整數部分的值,它將是——0、1、2、3、4、5、6和7。再次乘以剩餘的十進位制小數,直到它變成0,並記下每一步結果的整數部分。然後寫下記下的整數部分的結果,這將是給定十進位制數的等效小數八進位制數。這是轉換小數十進位制數的過程,演算法如下所示。

  • 將十進位制數作為被乘數。

  • 用8乘以這個數(8是八進位制的基數,所以這裡是乘數)。

  • 將結果的整數部分儲存在一個數組中(它將是:0、1、2、3、4、5、6和7,因為乘數是8)。

  • 重複以上兩步,直到數字變為零。

  • 列印陣列(這將是給定十進位制小數的等效小數八進位制數)。

請注意,被乘數(此處為十進位制小數)是被乘數乘以乘數(此處為八進位制的基數,即8)的數。

示例——將十進位制小數0.140869140625轉換為八進位制數。

由於給定的數字是十進位制小數,因此使用上述演算法用8進行短乘法,並計算整數部分。

乘法結果的整數部分
0.140869140625 x 8 = 1.1269531251
0.126953125 x 8 = 1.0156251
0.015625 x 8 = 0.1250
0.125 x 8 = 1.01
0.0 x 8 = 0.00
等等…

現在,寫下這些結果的整數部分,這將近似為0.1101,它是十進位制小數0.140869140625的等效小數八進位制數。

用除法轉換

此方法是猜測十進位制數的八進位制數。你需要繪製一個8的冪的表格,對於整數部分,演算法如下所示。

  • 從任何十進位制數開始。

  • 列出8的冪。

  • 用最大的8的冪除以十進位制數。

  • 找到餘數。

  • 用下一個8的冪除以餘數。

  • 重複此過程,直到找到完整的答案。

示例——將十進位制數136轉換為八進位制數。

根據上述演算法,8的冪的表格為:

十進位制82=6481=880=1
八進位制210


Divide the decimal number by the largest power of eight.
= 136 / 64 = 2.125
So 2 will be first digit or most significant bit (MSB) of octal number.
Now, remainder will be,
= 136 - 642 = 8
Now, divide this remainder by the next power of 8.
= 8 / 8 =1.0
So 1 will be next digit or second most significant bit (MSB) of octal number.
Now, remainder will be,
= 8 - 81 = 0
Now, divide this remainder by the next power of 8.
= 0 / 8 = 0
So, 0 will be last (least significant) bit of required octal number.
Therefore, 210 will be equivalent octal number of given decimal number 136.

更新於:2020年6月26日

18K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告