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

输入是一个8位的二进制数。
把输入的数转换为十进制数输出。
输入样例:
10000001
输出样例:
129
CodeBlocks 里面可以运行的

第1个回答  2011-01-12
用位移.
10000001 == (1<<7)+1=128+1=129
第2个回答  2024-05-11
#include <stdio.h>
int main(void){
char a[16];//定义字符串数组及大小
int sum = 0;//定义并初始化二进制转十进制之后的结果
gets(a);输入字符串
int n = strlen(a);定义所读取的字符串长度
for(int i =n-1,p = 1;i >= 0;i--)//定义字符串数组从a[n-1]到a[0]以及二进制初始值2的零次方,并从末尾循环遍历数组
{
sum += (a[i] - 48)*p;//将输入字符串中的0或1转化为二进制中的数字0或1
p = p*2;
}
printf("二进制转化为十进制的结果为%d",sum)
return 0;
相似回答