1、实现十进制对二、八、十六进制的进制转换
ps 代码待优化
#include <stdio.h>
#include <string.h>
//进制转换
int main(){
int a,a_2[100] = {0},a_8[100],a_16[100],a2,a8,a16,i=0,j=0,k=0;
printf("请输入一个要进行转换的十进制数字:\n");
scanf("%d", &a);
a2 = a8 = a16 = a;
while(a2>0){
a_2[i] = a2 % 2;
a2 = a2 / 2;
i++;
}
while(a8>0){
a_8[j] = a8 % 8;
a8 = a8 / 8;
j++;
}
while(a16>0){
a_16[k] = a16 % 16;
a16 = a16 / 16;
k++;
}
printf("二进制:");
for(i--; i >= 0; i--){
printf("%d ", a_2[i]);
}
printf("\n八进制:");
for(j--; j >= 0; j--){
printf("%d ", a_8[j]);
}
printf("\n十六进制:");
for(k--; k >= 0; k--){
if(a_16[k] >= 10){
printf("%c ", 'A'-10 +a_16[k]);
}else{
printf("%d ", a_16[k]);
}
}
return 0;
}