Convertir un número a formato binario en JavaScript
- Cree una función para convertir el número en binario en JavaScript
-
Convertir un número en binario con la función
toString(2)
Convertir un número a binario es un proceso bastante complejo. Si vamos a sentarnos y convertir los números manualmente, el resultado será propenso a errores. ¿Cómo cambiamos un número a formato binario? JavaScript no tiene muchas funciones integradas para hacerlo. Introduciremos cómo convertir un número a binario en JavaScript.
Cree una función para convertir el número en binario en JavaScript
Antes de pasar al código, necesitamos conocer el proceso de conversión de un número decimal (base 10) a un número binario (base 2). Para simplificar, cubriremos la conversión de números enteros positivos en este artículo. Por lo tanto, el cambio de números enteros negativos y números de punto flotante está fuera del alcance de este artículo.
Comprender el proceso de conversión
Dado un número entero (o número de JavaScript), seguimos dividiendo el número por dos y capturando su resto hasta que el número se convierte en menos de 2. Por ejemplo, si tenemos un número 25, sigue dividiendo 25
por 2
hasta que obtengamos el cociente menor que 2.
Divisor | Cociente | Recordatorio | Bits |
---|---|---|---|
25/2 | 12 | 1 | 0 |
12/2 | 6 | 0 | 1 |
6/2 | 3 | 0 | 2 |
3/2 | 1 | 1 | 3 |
1/2 | 0 | 1 | 4 |
Leemos los dígitos de mayor a menor. Por lo tanto, el valor binario del número 25 es 1101.
Usamos el siguiente conjunto de cálculos para confirmar si el valor binario representa el número decimal correcto. Cada bit representado en el número binario se multiplica por 2
para potenciar el valor de la posición del bit (comenzando desde 0).
= 2^4*(1) + 2^3*(1) + 2^2*(0) + 2^1*(0) + 2^0*(1)
= 16 + 8 + 0 + 0 + 1
= 25
Código JavaScript para convertir el número a su formato binario
Construimos el siguiente código sobre el método discutido anteriormente. La función convertToBinary1
consuela el equivalente binario de un número decimal pasado como parámetro. Tenga en cuenta que leemos el resultado al revés. Por lo tanto, el código se ha creado teniendo en cuenta todos los factores antes mencionados.
Usando iteración
function convertToBinary1(number) {
let num = number;
let binary = (num % 2).toString();
for (; num > 1;) {
num = parseInt(num / 2);
binary = (num % 2) + (binary);
}
console.log(binary);
}
window.onload = function() {
console.log(convertToBinary1(25));
console.log(convertToBinary1(8));
}
Producción :
11001
1000
Pasos
-
Hacer una copia del parámetro pasado a la función y almacenarlo en una variable temporal
num
. -
Crea una variable para almacenar los bits binarios. Esencialmente es de tipo string para facilitar su manejo.
-
Inicie la iteración para generar los bits binarios y déjela continuar hasta que el número ya no sea divisible por 2.
En cada iteración, dividimos el número por
2
para obtener el cociente. Calculamos el módulo del cociente. Este paso genera los bits binarios como módulo de un número con 2 genera los bits binarios0
o1
. -
Añade el bit binario generado por el valor módulo a la variable binaria que contiene los bits binarios generados en cada iteración.
-
Una vez que el número ya no es divisible por
2
(marcado con la condición (num / 2)> 1), la iteración se detiene. -
En el paso final, registramos el resultado en la consola. Y, por lo tanto, obtenemos el equivalente binario del número decimal pasado como parámetro a esta función.
Usando la recursividad
Podemos usar el método de recursividad para convertir el bit decimal en binario. Este enfoque requiere menos líneas de código pero más pensamiento. La recursividad se detiene cuando el número ya no es divisible por 2, y sigue llamándose a sí mismo hasta que alcanza la condición de ruptura. Las recursiones son elegantes pero consumen más memoria para la pila de llamadas de función que para el enfoque de iteración simple.
function convertToBinary(number, bin) {
if (number > 0) {
return convertToBinary(parseInt(number / 2)) + (number % 2)
};
return '';
}
window.onload = function() {
console.log(convertToBinary(25));
console.log(convertToBinary(8));
}
Producción :
11001
1000
Convertir un número en binario con la función toString(2)
La función toString()
es bastante familiar para convertir un número en una cadena. Pero también podemos usarlo para convertir un número a su formato binario. Por lo general, se utiliza con el objeto Number
para convertir el número a formato binario. La función toString(2)
de javascript, cuando se utiliza en un objeto numérico, devuelve el equivalente binario del valor numérico, como se muestra en los ejemplos siguientes. El método toma el valor de la base como entrada. Por lo tanto, podemos usarlo para convertir un número dado a otros sistemas base (como la base de 16 (hexadecimal) y la de ocho (Octal)).
(8).toString(2)(25).toString(2)(235).toString(2)
Producción :
"1000"
"11001"
"11101011"
Tenga en cuenta que el tipo de retorno del método toString(2)
sigue siendo una cadena. Por lo tanto, convierte el número en un bit binario en formato de cadena.