1、2进制10进制的转换方法:
二进制数1101转十进制:
1×2的三次幂+1×2的二次幂+0×2的一次幂+1×2的零次幂=8+4+0+1=13
附加一个八进制转十进制的例子吧:
507(八进制转10进制):
5×8的2次幂+0×8的1次幂+7×8的0次幂=
5×64+0×8+7×1=327(10进制)
2、例程:
#include "stdio.h"
double BtoD(char B[])
{
double d=0;//转为十进制数的中间结果变量
int i=0; //当前求到了二进制数的位置
while(B[i++]!='\0')//当没有到二进制数结束时,一直循环
{
d=d*2+B[i-1]-'0'; //求出每个二进制位的位权(从高位到低位,所以每求一位,先前的都应变为原来的2倍),累加到中间结果
}
return d;//返回最终结果
}
int main()
{
char b1[20],b2[20];//定义两个二进制数字符串
scanf("%s %s",b1,b2);//输入两个字符串
printf("%.0lf",BtoD(b1)+BtoD(b2));//输出两个二进制数转为十进制数后的和
}
#include "stdio.h"
double BtoD(char B[])
{
double d=0;
int i=0;
while(B[i++]!='\0')
{
d=d*2+B[i-1]-'0';
}
return d;
}
int main()
{
char b1[20],b2[20];
scanf("%s %s",b1,b2);
printf("%.0lf",BtoD(b1)+BtoD(b2));
}
#include
int binstr2dec( char * s)
{
int n = 0;
while ( *s != '\0')
{
n<<=2;
if( *s++ =='1')
n += 1;
}
return n;
};
int main()
{
char b1[32] ;//= "1010101";
char b2[32] ;//= "100101";
gets( b1 );
gets( b2 );
int sum = binstr2dec(b1) + binstr2dec(b2);
printf("sum = %d",sum);
return 0;
}
#include
#include
#define N 16
int main(int argc, char *argv[])
{int a[N],i,n,j;
scanf("%d",&n);
for(i=15;i>=0;i--)
{a[i]=n%2;
n=n/2;
}
for(j=0;j
}
printf("\n");
system("PAUSE");
return 0;
}