hdml指的是什么接口
381
2022-06-14
在我们日常学习生活中,接触到的都是十进制,那在C语言中如何使用十进制转换成二进制呢?
首先,需要了解这两者的区别。我们平常使用的数字是从0~9组成,例如1、9、199、599等等,一个数字最多表示的数值也只能是九,如果需要表示十、一百等,就需要多个数字表示。例如最简单的小学数学中5+6的结果,一个数字不够,就只能“进位”,这时进一位“相当于十,”进两位“相当于二十。
因为逢十进一,也因为只有 0~9 共十个数字,所以叫做十进。所以在进行加法(减法)运算时,逢X进(借)一就是X进制
在数学中十进制和二进制的转换
十进制与二进制的对应关系
二进制和十进制的转换:
十进制 4321 = 4×10^3 + 3×10^2 + 2×10^1 + 1×1^0
二进制 1101 = 1×2^3 + 1×2^2 + 0×2^1 + 1×2^0 = 8 + 4 + 0 + 1 = 13
二进制 110.11 = 1×2^2 + 1×2^1 + 0×2^0 + 1×2-1 + 1×2-2 = 4 + 2 + 0 + 0.5 + 0.25 = 6.75
C语言中如何转换
#include
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;//最后结果加上符号即可
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~