如何将十进制转换为八进制?
十进制系统是公众最熟悉的数字系统。它是基数为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