c语言十进制换二进制

c语言十进制换二进制,第1张

第一:mathh头文件在这没用上,可删。

第二:tol从二进制高位开始累加,先加的是最左边的数,所以每次加完以后,所有二进制数都要要左移一位。

第三:tol+的是二进制数0或者1,而st字符串中每一位都是字符'0'或者'1',所以需要st-'0'来把字符转换成数字。st++为里循环取出每一个字符,++在后是先取值再加加

所以st++-'0';就相当于st-'0';st++;这两句。

另外,你贴的代码二进制转十进制,不是十转二进制。

C语言程序如下:

#include<stdioh>

int main(){

int N,i,t;

int a[100];

scanf("%d",&N);

for(i=0;N!=0;i++){

a[i]=N%2;

N=N/2;

}

for(t=i-1;t>=0;t--){

printf("%d",a[t]);

}

}

思路:反复地将n除以2取余数;将取出的余数用数组存放;由于先取出的是低位数据,后取出的是高位数据,因此需将数组逆序输出。

扩展资料:

1、十进制整数转二进制数:“除以2取余,逆序排列”(除二取余法)

2、十进制小数转二进制数:“乘以2取整,顺序排列”(乘2取整法)

3、十进制负数转二进制:“先取正数的二进制值,再取反,加1”

参考资料:

百度百科-二进制

#include

<stdioh>

void

main()

{

int

a;

scanf(\"%d\",&a);//输入一个10进制数。

int

result=0;//存储a的二进制结果。

int

p=1;//p=1表示个位数

do

{

int

b=a%2;//b是余数,第一个余数是二进制的个位。

result=result+pb;

p=p10;//10表示下个是10位数。

a=a/2;

}while(a);

printf(\"\\n%d\\n\",result);

}

程序在vc60下编译通过可以直接用,你自己看看吧,思路是a%2的结果是二进制的个位数,(a/2)%2的结果是二进制的十位数所以p扩大10倍,以后依次类推。

以上就是关于c语言十进制换二进制全部的内容,包括:c语言十进制换二进制、C语言,使用数组,编写一个十进制正整数转换为二进制数的转换工具、C语言 将十进制数转化为二进制数 程序代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9360992.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存