Programador Entrevista Golden Classic-Preguntas de la entrevista 05.02. Número binario a cadena

1. Introducción al tema

Convierte un número binario en una cadena. Dado un número real entre 0 y 1 (como 0,72), el tipo es doble e imprime su expresión binaria. Si el número no está entre 0 y 1, o no se puede representar con precisión en binario dentro de 32 bits, se imprime "ERROR".

Ejemplo 1:

 Entrada: 0,625
 Salida: "0,101"
Ejemplo 2:

 Entrada: 0.1
 Salida: "ERROR"
 Mensaje: 0.1 no se puede representar con precisión mediante binario
Mensaje:

Los 32 bits incluyen los dos bits "0" en la salida.

Fuente: LeetCode (LeetCode)
Enlace: https://leetcode-cn.com/problems/bianry-number-to-string-lcci Los
derechos de autor son propiedad de LeetCode . Para reimpresiones comerciales, comuníquese con la autorización oficial. Para reimpresiones no comerciales, indique la fuente.

Dos ideas para resolver problemas

       Para el examen de esta pregunta, se utiliza el método de " multiplicar por 2 y redondear hacia arriba " para convertir un número decimal en un número binario . Consulte el código para obtener más detalles.

Tres, código de resolución de problemas

class Solution {
public:
    string printBin(double num) {
        if(num > 1 || num < 0)
            return "ERROR";
        string res = "0.";
        while(num > 0)
        {
            num *= 2; //小数部分不断乘2
            if(num >= 1)  //取出整数部分,添加到二进制小数的后边
            {
                res += "1";
                num--; //更新十进制小数
            }
            else
                res += "0";
            if(res.size() > 32)
                return "ERROR";
        }
        return res;
    }
};

Cuatro, resultados de resolución de problemas

Supongo que te gusta

Origin blog.csdn.net/qq_39661206/article/details/108127442
Recomendado
Clasificación