二进制换十进制

来源:百度知道 编辑:UC知道 时间:2024/05/26 18:53:59
请教最快捷的心算(就是除去用工具辅助计算)二进制换算十进制的方法

#include<stdio.h>
#include<conio.h>
#define SIZE 1000//SIZE为十进制数字最多位数,可以设置为一任意大小的非负整数
void main()
{
int a[SIZE+1],b[SIZE+1],oct[2*SIZE],hex[SIZE]={0},yushu[4*SIZE]={0},
fuhao=0,i,j,k,t,B,nn,ys;//定义"布尔变量"fuhao以确定符号 变量ys作分段余数 nn为分段被除数
printf("输入你要转换的十进制整数(可以为负数但不能超过%d位),并以#结尾:\n",SIZE);
for(i=1;;i++){
t=getchar();//防止超出数组范围,先将字符放入t中
if(t=='-'){
fuhao=1;
i=0;
continue;
}
if(t=='#'){
break;
}
else
a[i]=t;
}
a[0]=i-1;
printf("你输入了一个有a[0]=%2d位的十进制数,其值为:\n",a[0]);
if(fuhao)
printf("-");
//以下for循环将a数组里的字符转换成数字
for(i=1;i<=a[0];i++)
a[i]-='0';
for(i=1;i<=a[0];i++)
printf("%d",a[i]);
printf("\n");
for(i=1;i<=a[0];i++)//将十进制数放入b数组
b[i]=a[i];

////////////////////////