#include <stdio.h>
int to_binary(int a);
int main()
{
//求一个整数(十进制)的二进制(循环语句版)
int a = 1234;
int result;
int shang;
int size;
int re;
int b = a;
int c = a;
//获取int数组的长度
while( ( re = b / 2 ) != 0 )
{
b = b / 2;
size++;
}
//printf("size: %d\n", size + 1);
int stack[size+1];
int index = 0;
//将数据装载到数组中
while(1)
{
if( (shang = a / 2) == 0)
{
result = a % 2;
//printf("%d\n",result );
stack[index++] = result;
break;
}else{
result = a % 2;
//printf("%d\n",result );
stack[index++] = result;
a = a / 2;
}
}
//打印数组
printf("循环方式:");
for (int i = size; i >= 0; i--)
{
printf("%d", stack[i]);
}
printf("\n");
printf("递归方式:");
to_binary(c);
printf("\n");
return 0;
}
int to_binary(int a)
{
int r = a % 2;
if(a / 2 != 0)
to_binary(a / 2);
printf("%d",r );
return 0;
}