在C语言中怎么把一个数转换成二进制然后输出

Python026

在C语言中怎么把一个数转换成二进制然后输出,第1张

数据在内存中本来就是以二进制补码存放的,设法从高字节至低字节一个bit一个bit地输出到屏幕上即可。根据题面要求,输出过程还要做以下工作:

从最高字节开始检测,全0的字节略去;

每8位增加输出一个空格。

代码如下:

12345678910111213141516//#include "stdafx.h"//If the vc++6.0, with this line.#include "stdio.h"int main(void){char *p unsigned i,n,x=1<<sizeof(int)*8-1 printf("Input an integer...\n") scanf("%d",&n) for(p=(char *)&n,i=sizeof(int)-1i>0i--)if(*(p+i)==0)x>>=8 else break for(i=0xx>>=1)printf(++i%8 ? "%d" : "%d ",(n&x) || 0) printf("\n") return 0}

在C语言里没有这样的函数,只能自已编写一个这样的函数

大概思路

void

Fun(int

num)

{

if(num

==1

||

num

==

0)

//等于0

或是

1时,直接输出

{

printf("%d",num)

}

else

{

while(num/2>0)

{

printf("%d",num%2)

//取余

num

=

num/2

//取整

}

}

}