将任意的十进制整数转换成任意R进制数(R在2-16之间)

来源:互联网 发布:信鸽血统软件 编辑:程序博客网 时间:2024/05/16 07:33

在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");
}

1 0
原创粉丝点击