Java——十进制转换为任意进制(两种方法)

1. 方法一 

package com.zth;
import java.util.Scanner;
public class JinZhi {
  // 十进制转换为 n 进制
  public String fun(int n,int num) {
    // n 表示目标进制, num 要转换的值
    String str= "";
    int yushu ;      // 保存余数
    int shang = num;      // 保存商
    while (shang>0) {
      yushu = shang %n;
      shang = shang/n;
      
      // 10-15 -> a-f
      if(yushu>9) {
        str =(char)('a'+(yushu-10)) + str;
      }else {
        str = yushu+str;
      }
    }
    
    return str;
  }

  public static void main(String[] args) {
    // TODO Auto-generated method stub
    JinZhi s1 = new JinZhi();
    
    Scanner scanner = new Scanner(System.in);
    System.out.print("请输入目标进制:");
    int jinzhi = scanner.nextInt();
    System.out.print("请输入要转换的数字:");
    int num = scanner.nextInt();
    scanner.close();
    
    System.out.println(s1.fun(jinzhi, num));
  }

}

运行展示:

请输入目标进制:2
请输入要转换的数字:15
1111

2.  方法二

package demo;

import java.util.Scanner;
/**
 * 十进制转换为任意进制
 * @author 时光·漫步
 *
 */
public class Test {
  public static void main(String[] args) {
    
    Scanner scanner = new Scanner(System.in);
    
    System.out.print("请输入目标数的进制:");
    int jinzhi = scanner.nextInt();
    
    System.out.print("请输入要转换的数字:");
    int num = scanner.nextInt();
    
    scanner.close();
    
    String str = Integer.toString(num,jinzhi);
    System.out.println(str);
  }

}

猜你喜欢

转载自blog.csdn.net/qq_41573234/article/details/83151544