¿Ya dominas lo básico? Un curso estructurado de JavaScript es la vía rápida para dar el salto.
Ver cursos de JavaScript en UdemyEnlace de afiliado. No te cuesta nada extra.
- 01Preparar el entorno (lo que necesitas)
- 02Crear variables
- 03Condicionales (sentencias if)
- 04Bucles (sentencias for)
- 05Crear funciones
- 06Trabajar con arrays
- 07Trabajar con objetos
- 08Bucles (sentencias while)
- 09Trabajar con cadenas de texto
- 10Usar clases (programación orientada a objetos)
- 11Gestión de errores (try...catch)
- 12Desestructuración y sintaxis de propagación
- 13Código asíncrono (Promise / async y await)
- 14Métodos avanzados de arrays (filter y reduce)
- 15La sentencia switch
- 16El operador ternario
- 17Herencia (extender clases)
- 18Cómo escribir comentarios
- 19Operadores lógicos (AND, OR, NOT)
- 20Constantes (valores de solo lectura con const)
- 21Dividir y unir cadenas (split y join)
- 22Sintaxis segura frente a null (?? y ?.)
- 23Buscar en arrays y colecciones (includes y find)
- 24Transformar arrays con map
- 25Arrays bidimensionales (datos en forma de tabla)
- 26Crear una clase de error propia
- 27Argumentos por defecto (valores iniciales de los parámetros)
- 28Usar Set (colecciones)
- 29Verificar con assert (tu primer paso hacia las pruebas)
- 30Funciones de orden superior (pasar una función como argumento)
- 31Pilas y colas (estructuras de datos básicas)
- 32Fundamentos de la conversión de tipos
- 33Introducción a las expresiones regulares
- 34El algoritmo de búsqueda binaria
- 35Construir un cifrado César (desplazar letras)
- 36Entender cómo funciona la ordenación de burbuja
- 37Construir y mostrar fechas (año, mes y día)
- 38Escribir varias pruebas unitarias juntas (casos de prueba)
- 39Acelerar cálculos con memoización (caché)
- 40Normalizar cadenas (trim y unificar mayúsculas)
- 41La diferencia entre copia superficial y copia profunda
- 42Fundamentos de los Enum (tipos enumerados)
- 43Aplanar arrays (flatten)
- 44Invertir una cadena y detectar un palíndromo
- 45Emparejar dos arrays (una operación zip)
- 46Redondear números (floor, ceil y round)
- 47Cadenas de varias líneas (plantillas literales)
- 48Devolver varios valores desde una función (desestructurar arrays)
- 49Calcular el MCD y el MCM (algoritmo de Euclides)
- 50Dar formato a números (alinear dígitos y decimales)
- 51Lógica de limpieza con try/catch/finally
- 52Escribir funciones genéricas que no dependen del tipo
- 53Fundamentos de Map (un objeto para pares clave-valor)
- 54Generar números aleatorios
- 55Operaciones a nivel de bits (AND, OR, XOR y desplazamientos)
- 56Usar static (propiedades y métodos estáticos)
- 57Esperar un tiempo fijo (setTimeout y await)
- 58Cuidado con el error de redondeo en coma flotante
- 59Transformar y aplanar de una vez con flatMap()
- 60FizzBuzz (el ejercicio clásico)
- 61Comprobar si un número es primo
- 62Operaciones de conjuntos con Set (unión, intersección y diferencia)
- 63Convertir bases numéricas (binario y hexadecimal)
- 64Comprobar que los paréntesis casan (aplicación de pilas)
- 65Comprobar un anagrama
- 66Comprobar si un año es bisiesto
- 67Convertir temperaturas (Celsius ⇄ Fahrenheit)
- 68Calcular la descomposición en factores primos
- 69[Aplicado] Construye una lista de tareas sencilla
Operaciones a nivel de bits (AND, OR, XOR y desplazamientos)
En esta lección aprenderás lo básico de las operaciones a nivel de bits en JavaScript, para entender esta forma de bajo nivel de tratar los números como binario. Está dirigida a quien busca «operaciones de bits AND y OR en JavaScript».
Las operaciones a nivel de bits tratan un número como binario y calculan bit a bit. Están & (AND), | (OR), ^ (XOR) y << (desplazamiento a la izquierda), muy usados para gestionar banderas y otros procesos de bajo nivel. Exigen una forma de pensar distinta de la aritmética normal: comparar y calcular dígito a dígito en binario.
El código de ejemplo prueba AND, OR, XOR y el desplazamiento a la izquierda sobre dos números, 12 (1100 en binario) y 10 (1010 en binario). & da 1 solo cuando ambos bits son 1, y | da 1 si lo es cualquiera de los dos: el número final se determina acumulando esos resultados dígito a dígito.
No tendrás muchas ocasiones de usarlo en el desarrollo cotidiano de aplicaciones, pero es un conocimiento útil para procesos críticos en rendimiento, desarrollo de videojuegos y los fundamentos de la criptografía. La técnica de empaquetar varias banderas de encendido/apagado en un solo número, los «bit flags», es una aplicación representativa.
Aunque en el día a día se use poco, ayuda a entender cómo funciona de verdad un ordenador por debajo. Las operaciones de bits aparecen como conocimiento básico imprescindible en cuanto pisas terreno de más bajo nivel: procesamiento de imágenes, criptografía o la implementación de un protocolo de red.
💡 Todo lo que pases a console.log() aparece en la salida de abajo.
