我是靠谱客的博主 精明帆布鞋,最近开发中收集的这篇文章主要介绍二进制数字转换为十进制c语言程序,如何使用C语言编写二进制转换为十进制的程序...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

满意答案

00e27ab806e4881f8254fe7ae8741834.png

cumkz

2017.07.27

00e27ab806e4881f8254fe7ae8741834.png

采纳率:52%    等级:9

已帮助:464人

#include 

#include 

#include 

/* 任意进制数转十进制数 */

/* char *value : 其他进制数,以字符串形式存储 */

/* int *result : 转换后的十进制数 */

/* int radix : 待转换的进制 */

/* R进制数共n位,第n位表示为Xn。转换后的10进制数表示为Y */

/* Y = Xn*R^0 + Xn-1*R^1 + Xn-2*R^2 + …… + X1*R^n-1 */

void others2Decimal (char *value, int *result, int radix) {

int digit,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 */

int check (char *value, int radix) {

int i;

for (i=0; i

if (radix<=10 && value[i]>='0' && value[i]<='9' && value[i]>=radix+'0')

return 0;

if (radix>10 && value[i]>='a' && value[i]<='z' && value[i]>=radix-10+'a')

return 0;

if (radix>10 && value[i]>='A' && value[i]<='Z' && value[i]>=radix-10+'A')

return 0;

}

return 1;

}

int main (void) {

char *value;

int radix=2,result;

printf ("请输入%d进制数:",radix);

fflush(stdin); /*清除缓冲区*/

gets (value);

if (check (value,radix)!=1) {

putchar ('n');

printf ("输入的%d进制数有误!n",radix);

putchar ('n');

return 0;

}

putchar ('n');

puts ("================================================================n");

printf ("10进制转换结果:");

others2Decimal (value,&result,radix);

printf ("%dn",result);

putchar ('n');

getch (); /*屏幕暂留*/

return 0;

}

运行结果

967e872b5d8edea16de6c81da863d63a.png

00分享举报

最后

以上就是精明帆布鞋为你收集整理的二进制数字转换为十进制c语言程序,如何使用C语言编写二进制转换为十进制的程序...的全部内容,希望文章能够帮你解决二进制数字转换为十进制c语言程序,如何使用C语言编写二进制转换为十进制的程序...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部