Niuke de hoy == Conversión base = java sigue encontrando el resto == considere la representación hexadecimal y positiva y negativa

Descripción del título: Dado un número decimal M y el número N que se va a convertir. Convierta el número decimal M al número de sistema N
Entrada: 7,2
Valor de retorno: "111"

El tema no es difícil, debes considerar los detalles, como 10 con A, 11 con B, y tener cuidado con lo positivo y negativo del número;

  • Es el proceso de buscar constantemente el resto, como de 17 a 3 dígitos,

  • 17% 3 = 2, continúe haciendo el dividendo con el cociente de 17/3 = 5,

  • 5% 3 = 2, continúe haciendo el dividendo con el cociente de 5/3 = 1,

  • 1% 3 = 1, 1/3 = 0, el cociente termina en 0,

  • -Ponga todos los restos juntos, gire 122 para que sea el número ternario => 2 * 3 ^ 0 + 2 * 3 ^ 1 + 1 * 3 ^ 2 == 17

  • char [] index = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'); para mapear la base

  • Saque el número negativo y presione la operación de número positivo

import java.util.*; 
public class Solution {
    
    
    /**
     * 进制转换
     * @param M int整型 给定整数
     * @param N int整型 转换到的进制
     * @return string字符串
     */
    public String solve (int M, int N) {
    
    
        // write code here
        StringBuffer str = new StringBuffer();
        char[] index = {
    
    '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
        boolean flag = false;
        if(M <0){
    
    
            flag = true;
            M = -M;
        }
        while(M != 0){
    
    
            int remain = M % N;
            str.insert(0,index[remain]);
            M /= N;
        }
        if(flag) str.insert(0,'-');
        return str.toString();
    }
}

Supongo que te gusta

Origin blog.csdn.net/qq_45531729/article/details/110691622
Recomendado
Clasificación