1. c语言程序 自定义函数实现:二进制转换为十进制。
先定符号负数先弄个负号,然后可以用Ascii码或BCD码表示十进制,ASCII码除以10用余数转成字符完成后加结束符,然后翻转字符串!BCD每字节两位10进数,方法一样。正常计算机内所有数据,都以二进制表系,如果是字符串二进制,先转成计算机内的二进制表示,再转10进制好了!
2. 用C语言编写二进制转换十进制的程序。
1、为了完成进制的转换,在主函数中声明了个函数Sum,主要用于将二进制的每一位转换为十进制后的数相加,返回值就是相加后的和。另外定义了一个数组array[8],用于存放输入的八位二进制数。
3. 如何使用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;
}
运行结果
4. c语言如何把一个字符串格式的二进制数转化为整数型的十进制数
首先要说,在计算机里面不存在十进制数。我们看到的输出的十进制数,其实是C编译器把真正的二进制数的数值以十进制形式显示在屏幕上。如果说计算机里面有十进制数的话,那么BCD数可以算是一种形式的十进制数。
而题目中的字符串格式的二进制数,也就是一串的'0','1'字符;转化为整数型其实就是求得其实际数值,最后以十进制形式输出。
#include <stdio.h>
int main()
{
long int m;
char c0[50],*c ;
while(scanf("%s",c0)!=EOF){
m = 0;c=c0;
while(*c)
m += (m + *(c++)-'0');
printf("%d\n",m);
}
return 0;
}