c语言编程如何进行二进制转换(十进制转换为二进制c语言编程)

网友投稿 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小时内删除侵权内容。

上一篇:python教程之实用的软件分享(Python软件有哪些?)(python 的软件)
下一篇:c语言是什么专业的(大学哪些专业学c语言)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~