㈠ 求二进制转十进制的代码 c语言!
#include <stdio.h>
long int btd(char *s) /*将以字符串形式存储在s地址中的二进制数字转换为对应的十进制数字*/
{
long int rt=0;
int i,n=0;
while (s[n]) n++;
for (--n,i=n; i>=0; i--)
rt|=(s[i]-48)<<n-i;
return rt;
}
int main(int argc, char* argv[])
{
printf("%ld",btd("11011"));/*示例,输出11011B的十进制形式*/
return 0;
}
㈡ 用C语言怎么做一个程序,把输入的2进制数转换成十进制数
#include <string.h>
#include <stdio.h>
#include <math.h>
#include <iostream>
using namespace std;
void convert();
void main()
{
convert();
}
void convert()
{
char a[100];
int num,sum=0;
int len;
cout<<"input the Binary:n";
gets(a);
cout<<"the original number:n";
puts(a);
len=strlen(a);
for (int i=0;i<len;i++)
{
{
num=(a[i]-48);
num=num*pow(2,len-i-1);
sum+=num;
}
}
cout<<sum<<endl;
}
㈢ 如何使用C语言编写二进制转换为十进制的程序
#include<stdio.h>
#include<math.h>
#include<string.h>
/*任意进制数转十进制数*/
/*char*value:其他进制数,以字符串形式存储*/
/*int*result:转换后的十进制数*/
/*intradix:待转换的进制*/
/*R进制数共n位,第n位表示为Xn。转换后的10进制数表示为Y*/
/*Y=Xn*R^0+Xn-1*R^1+Xn-2*R^2+……+X1*R^n-1*/
voidothers2Decimal(char*value,int*result,intradix){
intdigit,i,j;
*result=0;
for(i=strlen(value)-1,j=0;i>=0;i--,j++){
if(value[i]>='0'&&value[i]<='9')
digit=value[i]-'0';
if(value[i]>='a'&&value[i]<='z')/*十以上进制处理,小写字母*/
digit=value[i]-'a'+10;
if(value[i]>='A'&&value[i]<='Z')/*十以上进制处理,大写字母*/
digit=value[i]-'A'+10;
*result+=digit*pow(radix,j);
}
}
/*校验输入的某进制数是否合法*/
/*合法:返回1;不合法:返回0*/
intcheck(char*value,intradix){
inti;
for(i=0;i<strlen(value);i++){
if(radix<=10&&value[i]>='0'&&value[i]<='9'&&value[i]>=radix+'0')
return0;
if(radix>10&&value[i]>='a'&&value[i]<='z'&&value[i]>=radix-10+'a')
return0;
if(radix>10&&value[i]>='A'&&value[i]<='Z'&&value[i]>=radix-10+'A')
return0;
}
return1;
}
intmain(void){
char*value;
intradix=2,result;
printf("请输入%d进制数:",radix);
fflush(stdin);/*清除缓冲区*/
gets(value);
if(check(value,radix)!=1){
putchar(' ');
printf("输入的%d进制数有误! ",radix);
putchar(' ');
return0;
}
putchar(' ');
puts("================================================================ ");
printf("10进制转换结果:");
others2Decimal(value,&result,radix);
printf("%d ",result);
putchar(' ');
getch();/*屏幕暂留*/
return0;
}
运行结果
㈣ C语言 将十进制数转化为二进制数 程序代码
#include <stdio.h>
void main()
{
int a;
scanf(\"%d\",&a);//输入一个10进制数。
int result=0;//存储a的二进制结果。
int p=1;//p=1表示个位数
do
{
int b=a%2;//b是余数,第一个余数是二进制的个位。
result=result+p*b;
p=p*10;//*10表示下个是10位数。
a=a/2;
}while(a);
printf(\"\\n%d\\n\",result);
}
程序在vc6.0下编译通过可以直接用,你自己看看吧,思路是a%2的结果是二进制的个位数,(a/2)%2的结果是二进制的十位数所以p扩大10倍,以后依次类推。
㈤ 二进制转十进制c语言代码
#include<stdio.h>
intmain()
{
intn=0,c;
while((c=getchar())!=' ')
n=n<<1|c-'0';
printf("%d ",n);
return0;
}