简单办法是用联合体,直接打印出来。
typedef union DANDB {
unsigned long int i; // 存放十进制数
unsigned char c[4]; // 按字元(bit) 直接打印它出来
} DandB;
int main()
{
int i,j;
DandB v; // v 是这种联合体变量
printf("Please enter a integer data\n");
scanf("%d",&v.i); // 输入正整数
// v.i = 15;
for (i=3;i>=0;i--){
for (j=7;j>=0;j--)
printf("%1d", (v.c[i] >> j) & 1); // 按字元把32位二进制打印出来
}
===
手工计算,要不断除2取余,获得所有位,再打印出来。