c语言把二进制转化为十进制(C语言编程经典继续)
我们知道,现实生活中,有很多有关进制的例子。比如,最常见的是十进制。长度单位米、分米、厘米是十进制计数单位,时间的小时、分钟、秒钟是60进制,计算机则是只识别二进制的。所谓二进制,就是只用0和1来代表不同的数值和变化的一种计数方法。值得一提的是,其实二进制的思想在我们中国古代的八卦太极图中就已经显露无疑。
至于二进制如何转十进制,举个例子,二进制的1001等于十进制的9。右边第一位位权是1,右边第一位位权是2,右边第一位位权是4,如此推出,1001=8 1=9。今天,我就给大家带来二进制转十进制的程序样例,供大家参考,欢迎评论和指教。下面附上代码。
#include<stdio.h>
int bintodeci(char *s);//函数声明
void main()
{
char s[30];
printf("请输入二进制形式的数\n");
gets(s);
printf("转换成十进制形式是:%d\n",bintodeci(s));
}
int bintodeci(char *s)
{
int res=0,sign=1,i;
char *p;
i=1;
if(*s=='-')//如果输入的是负数,则数据符号是-
{sign=-1;s ;}
p=s;
while(*p!='\0')p ;//p一直指向字符串最后的反斜杠0,只为了从右往左运算
while(p!=s)
{
p--;
res=res i*(*p-'0');
i*=2;//位权等比递增,1,2,4,8,16
}
return res*sign;//最后结果加上符号即可
}
下面是正数二进制运行结果
下面是负数二进制运行结果
今天的编程演练就到这里,有什么问题请评论区评论给我,小编会及时回复哦,谢谢亲的支持!,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com