如何將十進位制轉換為八進位制?
十進位制系統是公眾最熟悉的數字系統。它是基數為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.
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP