十进制是公众最熟悉的数字系统。它是基数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)10Because base of binary and hexadecimal are 2 and 16 respectively.
= (1100010)2or (62)16Then 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)2or (0110 0010)2= (001 100 010)2= (1 4 2)8= (142)8
但是,可以使用两种直接方法将十进制数转换为八进制数-用余数转换和用除法转换。这些解释如下。
这是一种简单的方法,涉及将要转换的数字相除。设十进制数为N,然后将此数字除以8,因为八进制数制的底数为8。记下余数的值,即− 0、1、2、3、4、5、6或7。再次除法剩余的十进制数,直到变为0,并记录每一步的其余部分。然后从下到上(或以相反的顺序)写余数,这将等于给定十进制数的八进制数。这是转换整数十进制数的过程,算法如下。
以小数点为分红。
将该数字除以8(此处8是八进制的基数,因此除数)。
将余数存储在一个数组中(由于除数8,所以将为:0、1、2、3、4、5、6或7)。
重复上述两个步骤,直到数字大于零。
以相反的顺序打印数组(它将等于给定十进制数的八进制数)。
请注意,被除数(此处为十进制数)是被除数,除数被除数中的除数(此处为八进制,即8),商(余数除以十进制数)是除法数的结果。师。
示例-将十进制数字210转换为八进制数字。
由于给定的数字是十进制整数,因此通过使用上述算法,将余数除以8。
师 | 余数(R) |
---|---|
210/8 = 26 | 2 |
26/8 = 3 | 2 |
3/8 = 0 | 3 |
现在,从下到上(以相反的顺序)写入余数,这将是322,即十进制整数210的等效八进制数。
但是上述方法无法转换混合的小数部分(带整数和小数部分的数字)八进制数。对于小数部分,该方法说明如下。
设小数部分为M,然后将此数字乘以8,因为八进制数的底数为8。记下整数部分的值,即− 0、1、2、3、4、5、6和7。再次乘以剩余的十进制小数,直到它变为0,并记下每一步结果的每个整数部分。然后写出整数部分的注释结果,该结果将是给定十进制数的等效分数八进制数。这是转换小数十进制数的过程,算法如下。
以十进制数为被乘数。
该数字乘以8(8是八进制的基数,因此在此乘数)。
将结果的整数部分的值存储在数组中(由于乘数8,它将为:0、1、2、3、4、5、6和7)。
重复上述两个步骤,直到数字变为零。
打印数组(将是给定十进制小数的等效小数八进制数)。
请注意,被乘数(此处为十进制小数)是要乘以乘数(此处为八进制的基数,即8)
示例-将十进制小数0.140869140625转换为八进制数。
由于给定数字是十进制小数,因此使用上述算法对整数部分乘以8进行短乘。
乘法 | 结果整数部分 |
---|---|
0.140869140625 x 8 = 0.12695313 | 1 |
0.12695313 x 8 = 0.01562504 | 1 |
0.01562504 x 8 = 0.12500032 | 0 |
0.12500032 x 8 = 0.00000256 | 1 |
0.00000256 x 8 = 0.000020544 | 0 |
等等 .... |
现在,写下这些结果整数部分,这将近似为0.11010,即十进制小数的等效八进制小数0.140869140625。
此方法猜测十进制数的八进制数。您需要绘制一个8的幂表,对于整数部分,该算法解释如下。
以任何十进制数字开头。
列出8的幂。
用十进制数除以八的最大幂。
找到其余的。
将余数除以8的下一个幂。
重复直到找到完整答案。
示例-将十进制数字136转换为八进制数字。
根据以上算法,幂表为8,
小数 | 8 2 = 64 | 8 1 = 8 | 8 0 = 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.