如何将十进制转换为八进制?


十进制系统是公众最熟悉的数字系统。它是基数为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的等效八进制数。

但是上述方法不能转换混合数(带有整数和小数部分的数)的八进制数的小数部分。对于十进制小数部分,方法如下所示。

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.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+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告