c语言如何把二进制数转化为十进制数 c语言把二进制数转换成十进制数的程序怎么写。

作者&投稿:由萱 (若有异议请与网页底部的电邮联系)
//*********************************************
//不使用求余和除法的二进制转bcd的算法
//使用了C51中 指令DA的思路
//本人原创 已测试 以应用实际项目中
//Lhex_to_bcd
//*********************************************
//**************************
// 数据自加 并作10进制检查
//
//**************************
void C51_DA(unsigned char *da1,unsigned char Ln,unsigned char ac0)
{
unsigned char i;
unsigned char ac = ac0;//进位标志

for(i=0;i<Ln;i++)
{
da1[i] = da1[i] + da1[i] + ac;

if(da1[i] > 9)
{
da1[i] = da1[i] - 10;
ac = 1;
}
else
{
ac= 0;
}
}
}

//**************************************
// 多字节整形转 bcd
// 结果保存为非压缩bcd码
// 输入数据
// da1 用来保存转换结果
// 长度大于 (l+1)*2
// da2 被转换数据
// l da2 长度 用字节个数表示
// 输出 无
//**************************************
void Lhex_to_bcd(unsigned char *da1,unsigned char *da2,unsigned char l)
{
unsigned char i;
unsigned char m;
unsigned char tmp;
unsigned char Ln = (l+1)*2; //计算结果的长度

for(i=0;i<Ln;i++) //初始化计算结果
da1[i] = 0;

for(m=0;m<l;m++) //循环输入数据的字节数
{
tmp = da2[l-1-m];

for(i=0;i<8;i++)//每个字节循环8次
{
if(tmp&0x80) //取最高 1 bit
C51_DA(da1,Ln,1);
else
C51_DA(da1,Ln,0);
tmp<<=1;
}
}
}



纯数学方法会 C就不会

C语言 二进制数转化为十进制数~

C语言_010_二进制转十进制_上

按照如下步骤即可用C语言把二进制数转换成十进制数的程序:
1、首先在主函数中设置成函数Sum,另外定义了一个数组array[8],用于存放输入的八位二进制数。

2、然后使用了一个for循环语句,用于输入八位二进制数。在scanf函数里,在%d之间加一个1,然后使用printf函数输出,并且调用Sum函数,数组名作为实参。

3、在Sum函数中,声明了一个power函数,在这里n为指数,term为每一位数转换为十进制后的的数,如1*(2*2),sum为总和。

4、然后使用一个for循环语句,i用于控制循环的次数,n从最高的指数7开始每次循环减一,如果指数大于或等于零的,就进行循环,调用power函数时,将n作为实参,最后将和返回。


5、在power函数中,如果b等于零,即指数为零,则返回1,否则就进入一个循环,j用于控制循环次数。

6、最后看一下运行结果,这个C语言程序既可以把二进制数成功转换成十进制数了。

二进制数怎么转换为十进制数?
答:2456/8=307,余0;307/8=38,余3;38/8=4,余6;4/8=0,余4。将所有余数倒序相连,得到结果:4630。因此十进制的2456转换为八进制结果为4630。2、二进制到八进制转换 7=4+2+1 111 八进制最大的数字是7转换成二进制刚好是111,占3个位 每三个二进制数为一组,转成一个八进制数位,...

二进制数如何转换为十进制数?
答:只有两个数码0和1,因此它的每一位数都可用任何具有两个不同稳定状态的元件来表示;基本运算规则简单,运算操作方便。缺点 用二进制表示一个数时,位数多。因此实际使用中多采用送入数字系统前用十进制,送入机器后再转换成二进制数,让数字系统进行运算,运算结束后再将二进制转换为十进制供人们阅读。

二进制如何转化为十进制?
答:二进制是一种由0和1组成的数字系统,而十进制是一种由0到9这10个数字组成的数字系统。将一个二进制数转化为十进制,可以使用以下方法:从二进制数的最右边(即最低位)开始,将每一位的值乘以2的幂,幂的指数从0开始逐次增加1。将每一位的乘积相加,得到最终的十进制数。例如,将二进制数101101...

急!急!用汇编语言把二进制转换成十进制,要解释
答:用汇编语言把二进制数转换成十进制数的方法是:(1)把存放十进制数BCD码的寄存器清零。(2)把存放十进制数BCD码的寄存器内容复制到加数寄存器。(3)把要转换的二进制数由高位到低位逐位读入,若是1,则把累加器的进位寄存器置1,否则置0。(4)把存放十进制数BCD码的寄存器与加数寄存器相加后送回...

二进制如何转换成十进制?
答:将二进制、八进制、十六进制转换为十进制 二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。 假设当前数字是 N 进制,那么: 对于整数部分,从右往左看,第 i 位的位权等于Ni-1 对于小数部分,恰好相反,要从左往右看,第 j 位的位权为N-j。 更加通俗的理解是,假...

c语言把二进制数转换成十进制数的程序怎么写。
答:按照如下步骤即可用C语言把二进制数转换成十进制数的程序:1、首先在主函数中设置成函数Sum,另外定义了一个数组array[8],用于存放输入的八位二进制数。2、然后使用了一个for循环语句,用于输入八位二进制数。在scanf函数里,在%d之间加一个1,然后使用printf函数输出,并且调用Sum函数,数组名作为实参...

如何将二进制转换为十进制?
答:3、 十进制小数转换成二进制小数。十进制小数转换成二进制小数是用“乘2取整法”。即用2逐次去乘十进制小数,将每次得到的积的整数部分按各自出现的先后顺序依次排列,就得到相对应的二进制小数。4.二进制数转为十六进制。将二进制数转换成十六进制数是将二进数的整数部分从右向左每四位一组,每一...

二进制转十进制,怎么算???
答:二进制转换成十进制:基数乘以权,然后相加,简化运算时可以把数位数是0的项不写出来,(因为0乘以其他不为0的数都是0)。小数部分也一样,但精确度较少。方法:“按权展开求和”例:10001111 1×2⁷+1×2³+1×2²+1×2¹+1×2⁰=143,所以10001111的十进制表示...

C 语言编程 二进制转十进制
答:二进制转十进制 就是把十进制数除以二每一步的商和余数倒叙排列 如:十进制数 10 2 |_10 2 |_5 1 二进制为 122 程序为:include <stdio.h> main(){ int s,i,k;int r[];printf("输入十进制数:");scanf("%d",&a);i=0;if(a=1)b[0]=1;else { while(a>1){ b[i...

二进制怎么转换为十进制?
答:二进制转十进制的方法 方法为:把二进制数按权展开、相加即得十进制数。(具体用法如下图)所以(10101010)2=170 二进制转八进制 方法为:3位二进制数按权展开相加得到1位八进制数。(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0)。(具体用法如下图)所以(10101010)2=(...