醋味碎碎饼干小狗 2021-11-11 23:07 采纳率: 0%
浏览 36

java进制之间的转换,求解答

img

  • 写回答

1条回答 默认 最新

  • 香鱼嫩虾 2021-11-12 10:57
    关注
    
    package SysConvert;
    
    import java.util.ArrayList;
    import java.util.Scanner;
    
    /**
     * 进制转换工具类
     * @author 怦九
     * @date 2021/11/12
     */
    public class SysConvertTools {
        /*
        进制转换进程
         */
        public static void sysConvert(){
            ArrayList<String> results = new ArrayList<>();
            Scanner sc = new Scanner(System.in);
            System.out.println("---------欢迎使用十进制转任意进制系统--------");
            System.out.println("---------输入格式:十进制数字 其他进制--------");
            System.out.println("---------十进制数字和进制之间用空格隔开--------");
            System.out.println("---------多组输入请用回车分割--------");
            System.out.println("十进制数字取值范围:-2147483648~2141483647");
            System.out.println("进制取值范围:2-36");
            System.out.println("例如输入10 2,输出结果为1010");
    
            //s用于存储每一行的输出结果,
            String s = " ";
            System.out.println("请输入:");
            //多组输入回车分割时,只要输入的不是空字符串,程序就会继续
            while(!"".equals(s)){
                s = sc.nextLine();
    
                //通过split方法,根据空格分割出一个数组
                String[] stringArray = s.split(" ");
                
                //跳出循环的设定,如果字符串为空字符串,就可以跳出该while循环
                if("".equals(stringArray[0]) ||  "".equals(stringArray[1])){
                    break;
                }
                
                //使用Integer包装类,将字符串转换成int类型
                int a = Integer.parseInt(stringArray[0]);
                int b = Integer.parseInt(stringArray[1]);
    
                //result用于存放结果
                String result = "";
                //字母数组,用于存储A-Z
                String [] letters = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
                //数字数组,用于存储10-35
                int [] numbers = {10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35};
                while(a >= b || a %b !=0 ){
    
                    //for循环判断,索引对应,10对应A,11对应B,以此类推
                    for (int i = 0; i < numbers.length; i++) {
                        if(a % b == numbers[i]){
                            result = letters[i] + result;
                            break;
                        }
                    }
                    //如果余数只在0-9,那么直接拼接就可以了
                    if(a % b < 10){
                        result = a % b + result;
                    }
                    a = a / b;
                }
                //每一次结果都放入ArrayList集合中
                results.add(result);
            }
    
            System.out.println("结果如下:");
            for (String result : results) {
                System.out.println(result);
            }
    
        }
    
    
    }
    
    
    package SysConvert;
    
    
    
    /**
     * @author 怦九
     * @date 2021/11/12
     */
    public class Test {
        public static void main(String[] args) {
            SysConvertTools.sysConvert();
        }
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 11月11日

悬赏问题

  • ¥15 r包runway详细安装教程
  • ¥15 Html中读取Json文件中数据并制作表格
  • ¥15 谁有RH342练习环境
  • ¥15 STM32F407 DMA中断问题
  • ¥15 uniapp连接阿里云无法发布消息和订阅
  • ¥25 麦当劳点餐系统代码纠错
  • ¥15 轮班监督委员会问题。
  • ¥20 关于变压器的具体案例分析
  • ¥15 生成的QRCode圖片加上下載按鈕
  • ¥15 板材切割优化算法,数学建模,python,lingo