如题,今天我们来写十进制转16进制和 2进制。二进制前面我们写过。16进制的算法和二进制差不多。都是先对进制本身进行取余作为第一位,然后对进制做除法得到的商再对进制取余作为第二位。。循环往复
下面我附上我的代码
#include <stdio.h>
void to_binary(unsigned long num)
{
int r;
r = num % 2;
if(num >= 2)
{
to_binary(num/2);
}
putchar(r + '0');
}
void sixteen_band(unsigned long num)
{
int r;
r = num % 16;
if(num >= 16)
{
sixteen_band(num / 16);
}
if(r > 9)
{
putchar(r - 10 + 'A');
}
else
{
putchar(r + '0');
}
}
int main()
{
unsigned long num;
printf("enter an integer(q to quit):\n");
while(scanf("%ul",&num) == 1)
{
printf("16 进制:");
sixteen_band(num);
putchar('\n');
printf("2 进制:");
to_binary(num);
putchar('\n');
printf("enter an integer(q to quit):\n");
}
return 0;
}
下面我附上我的运行截图