当前位置: 首页 > 编程笔记 >

如何将小数转换为八进制?

濮阳弘扬
2023-03-14
本文向大家介绍如何将小数转换为八进制?,包括了如何将小数转换为八进制?的使用技巧和注意事项,需要的朋友参考一下

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

但是,可以使用两种直接方法将十进制数转换为八进制数-用余数转换和用除法转换。这些解释如下。

(a)余数转换(整数部分)

这是一种简单的方法,涉及将要转换的数字相除。设十进制数为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的等效八进制数。

但是上述方法无法转换混合的小数部分(带整数和小数部分的数字)八进制数。对于小数部分,该方法说明如下。

(b)余数转换(小数部分)

设小数部分为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.
 类似资料:
  • 本文向大家介绍如何将八进制转换为二进制?,包括了如何将八进制转换为二进制?的使用技巧和注意事项,需要的朋友参考一下 八进制数是基数为8的数字系统之一,这意味着只有8个符号−0、1、2、3、4、5、6和7。而二进制数是数字系统、网络和计算机专业人员最熟悉的数字系统。基2只有2个符号−0和1,这些数字可以分别用off和on表示。 从八进制转换为二进制数制 将八进制数转换成二进制数有多种直接或间接的方法

  • 本文向大家介绍如何将小数转换为二进制?,包括了如何将小数转换为二进制?的使用技巧和注意事项,需要的朋友参考一下 十进制数是公众最熟悉的数字系统。它是基数10,只有10个符号-0、1、2、3、4、5、6、7、8和9。而二进制数是数字系统,网络和计算机专业人员最熟悉的数字系统。它是基数2,只有2个符号:0和1,这些数字可以分别用off和on表示。 从十进制转换为二进制数字系统 有多种直接或间接的方法可

  • 问题内容: 我需要将小数转换为分数。转换成10英尺很容易。 这可以通过以下代码完成: 但是我想要的是 而且我不知道如何进行。我的问题不是重复。因为其他相关问题是C#。这是java。 问题答案: 您应该找到结果数的最大公约数,然后除以分子和分母。 这是一种实现方法:

  • 问题内容: 我想知道如何在Python中将小数转换为最低形式的分数。 例如: 问题答案: 您有两种选择: 用途: (1, 4) (从Python 3.6开始,您可以对对象执行相同的操作。) 使用类型: Fraction(0.25) Fraction(1, 4) 后者具有非常有用的转换: 由于浮点值可能不精确,因此您可能会得到“奇怪”的分数;限制分母以某种程度“简化”分数,方法是: 如果您仍在使用P

  • 问题内容: 我在字符串变量中有美元 我如何将其转换为小数而不是字符串,以便可以对其进行操作,例如向其中添加美元? 问题答案: 有一个简单的方法:

  • 问题内容: 我正在使用存储在配置文件中的文件掩码来更改文件的权限。由于os.chmod()需要八进制数,因此我需要将字符串转换为八进制数。例如: 在明显地尝试创建从0000到0777的每个八进制数并将其放入以字符串版本作为排队的字典中之后,我想到了以下内容: 有没有更简单的方法可以做到这一点? 问题答案: 您是否刚刚尝试将基数8指定为: 例: