八进制怎么算

一、八进制转换二进制

方法:取一分三法,即将一位八进制数分解成三位二进制数,用三位二进制按权相加去凑这位八进制数,小数点位置照旧。

例:将八进制的(327)O转换为二进制的步骤如下:

1. 3 = 011;

2. 2 = 010;

3. 7 = 111;

4. 读数,读数从高位到低位,011010111,即(327)O=(11010111)B。

二、八进制转换十六进制

方法:将八进制转换为二进制,然后再将二进制转换为十六进制,小数点位置不变。

例:将八进制的(327)O转换为十六进制的步骤如下:

1. 3 = 011;

2. 2 = 010;

3. 7 = 111;

4. 0111 = 7;

5. 1101 = D;

6. 读数,读数从高位到低位,D7,即(327)O=(D7)H。

扩展资料:

1、十六进制数转换为八进制

转换方法:以二进制位中介,即先将十六进制数按照一位拆四位的方法转换为二进制,在对这个二进制数使用三位合一位的方法转换为八进制。

2、二进制化为八进制

整数部份从最低有效位开始,以3位一组,最高有效位不足3位时以0补齐,每一组均可转换成一个八进制的值,转换完毕就是八进制的整数。

小数部份从最高有效位开始,以3位一组,最低有效位不足3位时以0补齐,每一组均可转换成一个八进制的值,转换完毕就是八进制的小数。

参考资料:百度百科-八进制

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2019-10-17

1、八进制化为十进制

例:将八进制数12转换成十进制数      

2、八进制化为二进制:

规则:按照顺序,每1位八进制数改写成等值的3位二进制数,次序不变。

例: (17.36)8 = (001 111 .011 110)2 = (1111.01111)2

3、八进制化为十六进制

先将八进制化为二进制,再将二进制化为十六进制。

例:(712)8 = (1110 0101 0)2 = (1CA)16

4、二进制化为八进制:

整数部份从最低有效位开始,以3位一组,最高有效位不足3位时以0补齐,每一组均可转换成一个八进制的值,转换完毕就是八进制的整数。小数部份从最高有效位开始,以3位一组,最低有效位不足3位时以0补齐,每一组均可转换成一个八进制的值,转换完毕就是八进制的小数。

例:(11001111.01111)2 = (011 001 111.011 110)2 = (317.36)8

5、十六进制化为八进制:

先用1化4方法,将十六进制化为二进制;再用3并1方法,将二进制化为8制。

例: (1CA)16 = (111001010)2 = (712)8

说明:小数点前的高位零和小数点后的低位零可以去除。

6、十进制化八进制:采用除8取余法。

例:将十进制数115转化为八进制数

8| 115…… 3

8| 14 …… 6

8| 1 …… 1

结果:(115)10 = (163)8

扩展资料:

在计算机中的应用:

八进制广泛应用于计算机系统,如PDP-8,ICL 1900和IBM大型机使用12位、24位或36位。八进制是这些基础,因为他们的最理想的二进制字缩写大小能被3整除(每个八进制数字代表三个二进制数字)。四、八到十二个数字可以简明地显示整个机器。

它也降低成本使得数字允许通过数码管,七段显示器,和计算器用于操作员控制台,他们在二进制显示使用过于复杂,然而十进制显示需要复杂的硬件,十六进制显示需要显示更多的数字。然而,所有现代计算平台使用16 - 32位,或者64位,如果使用64位,将进一步划分为八位字节。

这种系统三个八进制数字就能满足每字节需要,与最重要的八进制数字代表两个二进制数字(+ 1为下一个字节,如果有的话)。16位字的八进制表示需要6位数,但最重要的八进制数字代表(通过)只有一个(0或1)。这表示无法提供容易阅读的字节,因为它是在4位八进制数字。

参考资料:

八进制    百度百科

本回答被网友采纳
第2个回答  推荐于2017-11-17
Octal number system
  一种计数法,采用0,1,2,3,4,5,6,7八个数码,逢八进位,并且开头一定要以数字0开头。八进制的数较二进制的数书写方便,常应用在电子计算机的计算中。
  例如:
  10进制的32表示成8进制就是:40
  10进制的9,27在八进制中分别记位11,33.
  8进制的32表示成10进制就是:3×8^1+2×8^0=26本回答被网友采纳
第3个回答  2019-12-21
一种计数法,采用0,1,2,3,4,5,6,7八个数码,逢八进位,并且开头一定要以数字0开头。八进制的数较二进制的数书写方便,常应用在电子计算机的计算中。
例如:
10进制的32表示成8进制就是:40
10进制的9,27在八进制中分别记位11,33.
8进制的32表示成10进制就是:3×8^1+2×8^0=26
第4个回答  2017-11-10
输入一个十进制数 输出8进制
#include<stdio.h>
#include<math.h>
int toSnumber(int a);
void main()
{
int pnumber;
scanf("%d",&pnumber);
printf("%d 对应的8进制数为:%d\n",pnumber,toSnumber(pnumber));
}
int toSnumber(int a)
{
int i,num,snum;
num=8;
i=0;
snum=0;
while(1)
{
if(a<num)
{
snum=a;
break;
}
else if(a/num>=num) //大于100小于1000
{
snum=snum+(a-(a/num)*num)*pow(10,i);
a=a/num;
i++;
}
else if(a/num<num && a/num>0) //得到最高位 和次高位
{
snum=(a/num)*pow(10,(i+1))+(snum+(a-(a/num)*num)*pow(10,i));
break;
}
}
return snum;
}
相似回答