从最高字节开始检测,全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
//取整
}
}
}