C语言 将十进制数转化为二进制数 程序代码

C语言 将十进制数转化为二进制数 程序代码,第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倍,以后依次类推。

void dectobin(int n,char s[],int &i){

if(n==0) {

i=0;

return ;

}

else {

dectobin(n/2,s,i);

s[i]='0'+n%2;

i++;

}

}

int main( )

{

int ri,repeat;

int i,n;

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

scanf("%d",&n);

if(n==0) cout<<"0"<<endl;

char s[50];

int k=0;

dectobin(n,s,k);

s[k]='\0';

cout<<s;

printf("\n");

}

}

还是改了函数,如果不改的话,必须使用栈,那样更加麻烦,用递归简单点

给个提醒:做人要厚道,下次再0分就不给做了哈

#include<stdioh>

#define n 20

void change2(int t)

{ //将十进制数转换到存放二进制的数组中

int i;

int b[n]={0};

for(i=0;i<20;i++)

{

b[i]=t%2;

t=t/2;

}

for(i=n-1;i>=0;i--)

{

printf("%d",b[i]);

}

printf("\n");

}

void main(){

int demo;

printf("请输入一个十进制数:");

scanf("%d",&demo);

change2(demo);

}

#include<stdioh>

void main()

{

    int n, i;

    scanf("%d",&n);

    printf("%33s","");

    for(i=0;i<32;i++, n>>=1)

        printf("\b\b%d",n%2);

}

这样是把十进制数转成32位二进制

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

原文地址: http://outofmemory.cn/langs/11681381.html

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

发表评论

登录后才能评论

评论列表(0条)

保存