给定一个十进制数字,如何将其转换成二进制、十六进制。首先可以模拟一下我们平时是如何将十进制转换成二进制和十六进制的,大家应该使用短除法更多一些。那么我们可以使用短除法的思想将十进制转化为其他进制。可以使用递归实现。
下面,我们看一下实现的二进制转换代码:
void transTwo(int n){
if (n == 0 || n == 1){
printf("%d", n);
}
else{
transTwo(n / 2);
printf("%d", n % 2);
}
}
十进制转换16进制的代码如下:
void transSixteen(int n){
if (n < 16){
if (n < 10){
printf("%d", n);
}
else{
printf("%c", 55 + n);
}
}
else{
transSixteen(n / 16);
if (n % 16 < 10){
printf("%d", n%16);
}
else{
printf("%c", 55 + n%16);
}
}
}
转换为16进制的时候要注意,如果余数大于9那就要使用字母替代,所以就要分清楚情况。