是一个在c primer plus 上的一个二进制转换程序,但是我不理解这段被调函数的运行过程,自己在本子上弄了一下还是没理解。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void to_binary(unsigned long n);
int main(void)
{
unsigned long number;
printf("enter an integer (q to quit):\n");
while (scanf("%lu", &number) == 1)
{
printf("binary equivalent:");
to_binary(number);
putchar('\n');
printf("enter an integer (q to quit):\n");
}
printf("done.\n");
return 0;
}
void to_binary(unsigned long n)
{
int r;
r = n % 2;
if (n >= 2)
to_binary(n / 2);
putchar(r == 0 ? '0' : '1');
return;
}
11=3
110=6
1100=12
11000=24
想明白这个规律你大概就明白了