那位牛人,用C语言写一个二进制转化为十进制的程序!!??

来源:百度知道 编辑:UC知道 时间:2024/05/18 04:04:04

一下两个程序均在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;

}

可以直接输出,数据在计算机内部的储存形式相同

/*
*标准程序
*二进制变十进制:
*/
int binary_to_decimal(unsigned short binary[],char decimal[])
{
int iloop;