在c语言中,编程实现将任意的十进制整数转换成任意R进制数(R在2-16之间),源码如下所示:
#include <stdio.h>
int main(){
void change(int num,int parseNum);
char ch;
do{
//声明变量,用于操作待转换的数和转换的进制数
int num,parseNum;
printf("請輸入待轉換的數:\n");
scanf("%d",&num);
printf("請輸入要轉換的進制數:\n");
scanf("%d",&parseNum);
change(num,parseNum);
printf("繼續嗎?Y/N\n");
scanf("%s",&ch);
}while(ch=='Y'||ch=='y');
}
//定义函数,用来进行进制转换
void change(int num,int parseNum){
int i=0;
//定义一个数组
int nums[(sizeof(num)*8)];
//判断num是否大于0,当a与转换的进制数相除小于0后,程序结束
while(num>0){
//进行进制间转换
nums[i]=num%parseNum;
num=num/parseNum;
i++;
}
//循环,判断
for(int j=i-1;j>=0;j--){
if(nums[j]>9){
switch(nums[j]){
case 10:
printf("A");
continue;
case 11:
printf("B");
continue;
case 12:
printf("C");
continue;
case 13:
printf("D");
continue;
case 14:
printf("E");
continue;
case 15:
printf("F");
continue;
}
}
printf("%d",nums[j]);
}
printf("\n");
}