Ⅰ 用C语言编写二进制转换十进制的程序。
1、为了完成进制的转换,在主函数中声明了个函数Sum,主要用于将二进制的每一位转换为十进制后的数相加,返回值就是相加后的和。另外定义了一个数组array[8],用于存放输入的八位二进制数。
Ⅱ C语言 二进制数转化为十进制数
思路:十进制整数转换为二进制整数采用"除2取余,逆序排列"法。即用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
参考代码:
#include"stdio.h"
voidfun(intn){
if(n==0)return;
fun(n/2);
printf("%d",n%2);
}
intmain(){
intn;
scanf("%d",&n);
fun(n);
return0;
}
/*
运行结果:例如求10的2进制
10
1010
*/
Ⅲ 用C语言编写二进制转换十进制的程序。
一下两个程序均在VC在编译通过。
/*
如果这个二进制数比较大的话,
大到只能用数组储存这个二进制数,
当然如果大到转化成10进制int存不下的情况那另当别论
*/
#include<stdio.h>
#include<string.h>
int
main()
{
char
a[33];
int
i,
num
=
0;
scanf("%s",
a);
for(i=strlen(a)-1;
i>=0;
i--)
{
num*=2;
/*如果用位运算的话,速度会更快*/
num+=a[i]-'0';
}
printf("%d\n",
num);
return
0;
}
/*
如果这个二进制数的位数不超过10位的话
可用这个程序
*/
#include<stdio.h>
int
main()
{
int
num
=
0,
a,
j=1;
scanf("%d",
&a);
while(a)
{
num
+=
(a%10)
*
j;
a
/=
10;
j
*=
2;
}
printf("%d\n",
num);
return
0;
}