java写出 基数_Java写一个函数输出一个整数(第一个参数)在指定基数(第二个参数,整数)下的表示形式以字符串形式输出...

展开全部

package com.kidd;

import java.util.Scanner;

public class Main {

private static int maxlength = 16;

/**

* 进制转换 把正整数n转换成m进制最后输出字符串格式

*

* @param args

*/

public static void main(String[] args) {

int n, m;

Scanner sc = new Scanner(System.in);

n = getNum1(sc);

m = getNum2(sc);

String s = "";

s = convert(n, m, s);

System.out.printf("转换成%d进制的结果是:%s", m, s);

}

private static int getNum1(Scanner sc) {

int n = 0;

String s;

boolean end = false;

while (!end) {

System.out.print("请输入一个正e69da5e6ba903231313335323631343130323136353331333332643233整数:");

try {

s = sc.nextLine();

n = Integer.parseInt(s);

} catch (NumberFormatException e) {

System.out.println("输入不合法,请重新输入");

continue;

}

if (n 

System.out.println("输入不合法,请重新输入");

continue;

}

end = true;

}

return n;

}

private static int getNum2(Scanner sc) {

int m = 0;

String s;

boolean end = false;

while (!end) {

System.out.printf("请输入指定基数2~%d之间:", maxlength);

try {

s = sc.nextLine();

m = Integer.parseInt(s);

} catch (NumberFormatException e) {

System.out.println("输入不合法,请重新输入");

continue;

}

if (m  16) {

System.out.println("输入不合法,请重新输入");

continue;

}

end = true;

}

return m;

}

/**

* 用除m取余的方法把正整数n转换成m进制,结果存放到s中

*

* @param n

* @param m

* @param s

* @return

*/

private static String convert(int n, int m, String s) {

int i = n / m;

int j = n - i * m;

if (i != 0) {

s = convert(i, m, s);

}

switch (j) {

case 0:

case 1:

case 2:

case 3:

case 4:

case 5:

case 6:

case 7:

case 8:

case 9: {

s = s + j;

break;

}

case 10: {

s = s + 'A';

break;

}

case 11: {

s = s + 'B';

break;

}

case 12: {

s = s + 'C';

break;

}

case 13: {

s = s + 'D';

break;

}

case 14: {

s = s + 'E';

break;

}

case 15: {

s = s + 'F';

break;

}

default: {

break;

}

}

return s;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值