❶ 二进制转八进制的算法
把二进制从低位到高位依次三个一组,最后不够的高位补0, 再分别算成十进制数就可以了
如:
0111 1001 0110
分组
011 110 010 110
计算
3626
前面加0以标识是8进制
03626
(1)八进制算法扩展阅读:
进制转换是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。
基数是指,进位计数制中所采用的数码(数制中用来表示“量”的符号)的个数。
位权是指,进位制中每一固定位置对应的单位值。
二进制--->八进制
(11001.101)(二)
整数部分:从后往前每三位一组,缺位处用0填补,然后按十进制方法进行转化, 则有:
001=1
011=3
然后我们将结果按从下往上的顺序书写就是:31,那么这个31就是二进制11001的八进制形式
❷ 八进制转化成二进制的算法
八进制转二进制是一位变三位,十六进制转二进制是一位变四位,八进制→二进制 0→000 1→001 …… 7→111十六进制→二进制 0→0000 1→0001 …… F→1111
如果帮助到您,请记得采纳为满意答案哈,谢谢!祝您生活愉快! vae.la
❸ 将八进制(751)8转换成二进制数.怎么算我想要它的详细算法!先谢了!
变为二进制是111101001
算法是7在二进制里面是111,5是101,1是001
也就是八进制的一位在二进制里要用三个数来表示。
❹ C语言 十进制数转换八进制 算法
方法一:直接使用控制字符串 %o 八进制%x
方法二:
求余来算,比如求十进制数 x(x>100) 的8进制,先通过 x%8 可以得到个位(末位)上的数,当十进制数等于8时,必然会进位,求余的结果正好是不能进位的部分,x=x/8(这就像位移,x的8进制数向右移了一位),这样已经求出来的 个位 位移后没有了,原来的十位变成了个位,继续把得到的x按上面的方式求末位,就能求出来十位,按照这种方式得到的 8进制数 是反的(先得到个位,再十位。。。),这样很适合放到栈中,取得时候又会反过来,伪代码可以这样写:
while(x){
printf("%d",x%n);//会打印出x转换为 N进制数 从低位到高位上的每一位数
x/=n;
}
十进制转换N进制:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef int INT;
typedef struct dd
{
INT data;
struct dd *next;
}LNode,*LStack;
LStack pushstack(LStack top,int x)
{
LStack p;
p=(LStack)malloc(sizeof(LNode));
if((x)!=-1) {p->data=(x); p->next=top; top=p;}
return top;
}
LStack outstack(LStack top,int *x)
{
LStack p=top;
*x=p->data;
top=p->next;
free(p);
return top;
}
main()
{
int x,n;
LStack top=NULL;
printf("请输入原数及要转换的进制:");
do{
scanf("%d%d",&x,&n); //输入一个十进制数和要转换的进制,比如3 2 得到1 }while(x>35||x<0||n<2);
while(x){ //这个循环把每一位放到栈中
top=pushstack(top,x%n);
x/=n;
while(top!=NULL)
{
top=outstack(top,&x);
if(x<10)
printf("%c",x+'0');
else
printf("%c",x+'A'-10);
}
return 0; }
❺ 八进制算法、
以小数点儿为分隔, 对整数部分从右至左, 三位分一组, 对小数部分, 从左至右, 三位为一组, 注意小数部分最后一组不足三位应在尾部被0至三位, 将每一组转换成八进制(其实也就是十进制), 每组得到的新的数字的顺序不变,写下来就是二至八进制的转换. 例如:二进制(11011001.0100101) , 以小数点为分隔分组, 得 11, 011, 001 . 010, 010 100, 最后两个零必须补,然后每组分别转换 331.224, 这个就是对应的8进制.
❻ 8进制转10进制算法是什么
八进制转换为其他进制数的原则是:逢8进1。八进制化为十进制:例如八进制数1507转换为十进制,7*8^0+0*8^1+5*8^2+1*8^3=839,结果是,八进制数1507转换成十进制数为839。
一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢八进1。一些编程语言中常常以数字0开始表明该数字是八进制。八进制的数和二进制数可以按位对应(八进制一位对应二进制三位),因此常应用在计算机语言中。
(6)八进制算法扩展阅读:
进制有时被用于计算而不是十六进制,也许最常在现代与文件权限下Unix系统。它的优点是不需要任何额外的符号位数(十六进制系统是基数16,因此需要六个附加符号超出0-9)。它全部用于数字显示。
在编程语言中,八进制文字通常与不同的前缀,包括数字0,字母o或q,digit-letter 0 o组合,或符号&[11]或美元。在摩托罗拉惯例,八进制数字加@前缀,而小字母o作为后缀添加,在英特尔公约。DR-DOS调试使用前缀编辑八进制数字。
❼ 8进制转10进制,1011换成十进制怎么算。要详细的公式。
8进制1011换成十进制为521。
8进制转10进制采用"按权相加"法,把八进制数首先写成加权系数展开式,然后按十进制加法规则求和。即 8进制1011 =1x8^3+0x8^2+1x8^1+1x8^0=512+0+8+1=10进制521。
(7)八进制算法扩展阅读:
八进制广泛应用于计算机系统,如PDP-8,ICL 1900和IBM大型机使用12位、24位或36位。八进制是这些基础,因为他们的最理想的二进制字缩写大小能被3整除(每个八进制数字代表三个二进制数字)。四、八到十二个数字可以简明地显示整个机器。
它也降低成本使得数字允许通过数码管,七段显示器,和计算器用于操作员控制台,他们在二进制显示使用过于复杂,然而十进制显示需要复杂的硬件,十六进制显示需要显示更多的数字。
❽ 八进制乘法如何计算
八进制的加减乘除的运算规则与二进制、十进制、十六进制都一样,只是八进制是满八向高位进一,或者高位的1相当于低位的八。
而二进制、十六进制是满二、十六向高位进一,或者高位的1相当于低位的二、十六。
八进制的计数规则:
基数为8。
由8个数字组成,分别是0、1、2、3、4、5、6、7。
逢8进1,借1当8。
(8)八进制算法扩展阅读:
十进制化八进制
方法1:采用除8取余法。
例:将十进制数115转化为八进制数
8| 115…… 3
8| 14 …… 6
8| 1 …… 1
结果:(115)10 = (163)8
方法2:先采用十进制化二进制的方法,再将二进制数化为八进制数
例:(115)10 = (1110011)2 = (163)8
❾ 八进制转换成十六进制的算法 请举例说明
八进制数转换为十六进制
转换方法:以二进制位中介,即先将八进制数按照一位拆三位的方法转换为二进制,在对这个二进制数使用四位合一位的方法转换为十六进制。
如:将13.4O转换为十六进制。
1、将13.4O转换为二进制。转换方法在本文的01部分,结果是1011.1B。
2、将第一步中的二进制数1011.1B转换为十六进制。整数部分1011正好是四位,组成一组,转换为十六进制是B(可先将1011按权展开得到一个十进制数是11,11对应十六进制的B)。小数部分只有一位,后面要补三个0,组成一组,1000,转换为十六进制是8。所以,转换为十六进制的结果是B.8H。
(9)八进制算法扩展阅读:
十六进制数转换为八进制
转换方法:以二进制位中介,即先将十六进制数按照一位拆四位的方法转换为二进制,在对这个二进制数使用三位合一位的方法转换为八进制。
如:将2BB.2EH转换为八进制。
1、将2BB.2EH转换为二进制。转换方法在本文的02部分,结果是1010111011.0010111B。
2、将第一步中的二进制数1010111011.0010111B转换为八进制。整数部分有10位,前面补两个0,组成四组。小数部分有7位,后面要补两个0,组成三组。转换为八进制的结果是1273.134O。
❿ 二进制 八进制 十进制 十六进制 算法 多举几个例子 详细 谢谢
就是底和权位大小不一样(分别是0-9,0-1,0-7,0-F)不一样,其余算法都一样,非常简单,就是个简单数字游戏
例如如十进制的100 这个数转化如下
=1*10^2+0*10^1+0*10^0=100(十进)
=2^6+2^5+0*2^4+0*2^3+2^2 +0*2^0+0*2^0则为01100100(二进)
=8^2+4*8^1+4*8^0=144(八进)
=6*16^1+4*16^0=64(16进)