如何將十進位制轉換為八進位制?
十進位制系統是公眾最熟悉的數字系統。它是基數為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 = 26 | 2 |
26 / 8 = 3 | 2 |
3 / 8 = 0 | 3 |
現在,從下往上(反向)寫下餘數,這將是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.126953125 | 1 |
0.126953125 x 8 = 1.015625 | 1 |
0.015625 x 8 = 0.125 | 0 |
0.125 x 8 = 1.0 | 1 |
0.0 x 8 = 0.0 | 0 |
等等… |
現在,寫下這些結果的整數部分,這將近似為0.1101,它是十進位制小數0.140869140625的等效小數八進位制數。
用除法轉換
此方法是猜測十進位制數的八進位制數。你需要繪製一個8的冪的表格,對於整數部分,演算法如下所示。
從任何十進位制數開始。
列出8的冪。
用最大的8的冪除以十進位制數。
找到餘數。
用下一個8的冪除以餘數。
重複此過程,直到找到完整的答案。
示例——將十進位制數136轉換為八進位制數。
根據上述演算法,8的冪的表格為:
十進位制 | 82=64 | 81=8 | 80=1 |
八進位制 | 2 | 1 | 0 |
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.