如何将十进制转换为八进制?
十进制系统是公众最熟悉的数字系统。它是基数为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的等效八进制数。
但是上述方法不能转换混合数(带有整数和小数部分的数)的八进制数的小数部分。对于十进制小数部分,方法如下所示。
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
(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.