Introducción a los tipos octales y binarios en JavaScript
Resumen: en este tutorial, aprenderás cómo representar los tipos octales y binarios en ES6.
ES5 proporcionó tipos de datos numéricos en octal (prefijo 0), decimal (sin prefijo) y hexadecimal (0x). ES6 agregó soporte para binarios y cambió la forma en que se representa los octales.
Introducción a Octal y Binario
- El sistema de numeración
octales un sistema de numeración en base8, una base que es potencia exacta de2o de la numeraciónbinaria. Esta característica hace que la conversión abinarioo viceversa sea bastante simple. El sistema octal usa8dígitos (0, 1, 2, 3, 4, 5, 6, 7) y cada dígito tiene el mismo valor que en el sistema de numeracióndecimal. - El sistema
binario, es un sistema de numeración en el que los números son representados utilizando únicamente dos cifras:0(cero) y1(uno).
Octales
Para representar un octal en ES5, utilizamos el prefijo cero (0) seguido de una secuencia de dígitos octales (del 0 al 7). Por ejemplo:
let a = 051;
console.log(a); // 41
Si el literal octal contiene un número que está fuera de rango, JavaScript ignora el 0 inicial y trata el literal octal como un decimal, como se muestra en el siguiente ejemplo:
let b = 058; // invalid octal
console.log(b); // 58
En este ejemplo, dado que 8 es un dígito no válido para representar el número octal, JavaScript ignora el 0 y trata el número entero como un decimal con un valor de 58.
Ten en cuenta que puedes usar los literales octales en modo no estricto. Si los usas en modo estricto, JavaScript arrojará un error.
"use strict"
let b = 058; // invalid octal
console.log(b);
Aquí está el mensaje de error:
SyntaxError: Decimals with leading zeros are not allowed in strict mode.
ES6 te permite especificar el literal octal usando el prefijo 0o seguido de una secuencia de dígitos octales del 0 al 7. Aquí hay un ejemplo:
let c = 0o51;
console.log(c); // 41
Si usas un número no válido en el literal octal, JavaScript generará un SyntaxError como se muestra en el siguiente ejemplo:
let d = 0o58;
console.log(d); // SyntaxError
Binarios
En ES5, JavaScript no proporcionó ninguna forma literal para los números binarios. Para analizar una cadena binaria, utiliza la función parseInt() de la siguiente manera:
let e = parseInt('111',2);
console.log(e); // 7
ES6 agregó soporte para literales binarios mediante el uso del prefijo 0b seguido de una secuencia de números binarios (0 y 1). Aquí hay un ejemplo:
let f = 0b111;
console.log(f); // 7
Resumen
- Los literales
octalescomienzan con0oseguido de una secuencia de números entre0y7. - Los literales
binarioscomienzan con0bseguido de una secuencia de números0y1.
