Swift Academy · Lección

Operadores bit a bit y de desbordamiento

Manipule bits y utilice de forma segura operadores de desbordamiento como &+.

Lección 4 de 413 pasos

Operadores bit a bit y de desbordamiento es una lección gratuita de Swift Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Swift Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Swift Academy incluye 4 lecciones en total.

Operadores bit a bit

Los operadores bit a bit trabajan con los dígitos binarios individuales de los enteros. Swift ofrece AND &, OR |, XOR ^, NOT ~ y desplazamientos << / >>.

let a: UInt8 = 0b1100
let b: UInt8 = 0b1010
print(a & b)
print(a | b)

AND bit a bit

& establece cada bit del resultado en 1 únicamente cuando ambos bits de entrada son 1. Se utiliza a menudo para enmascarar bits.

let value: UInt8 = 0b10110101
let mask: UInt8 = 0b00001111
let low = value & mask
print(low)

OR bit a bit

| establece cada bit del resultado en 1 cuando cualquiera de los bits de entrada es 1. Resulta útil para combinar indicadores.

let flagsA: UInt8 = 0b0001
let flagsB: UInt8 = 0b0100
let combined = flagsA | flagsB
print(combined)

XOR bit a bit

^ establece un bit en 1 únicamente cuando los dos bits de entrada son diferentes. Aplicar XOR dos veces con el mismo valor restaura el valor original.

let original: UInt8 = 0b1010
let key: UInt8 = 0b0110
let encoded = original ^ key
let decoded = encoded ^ key
print(encoded, decoded)

NOT bit a bit

El operador unario ~ invierte todos los bits. En un UInt8, se invierten los 8 bits.

let bits: UInt8 = 0b00001111
let inverted = ~bits
print(inverted)

Desplazamiento a la izquierda

<< mueve los bits hacia la izquierda y rellena con ceros. Cada desplazamiento a la izquierda de 1 multiplica por 2 un valor sin signo.

let n: UInt8 = 0b00000011
print(n << 1)
print(n << 2)

Desplazamiento a la derecha

>> mueve los bits hacia la derecha. En los enteros sin signo, rellena con ceros, lo que equivale a dividir entre potencias de dos.

let n: UInt8 = 0b00010000
print(n >> 1)
print(n >> 4)

Desbordamiento con operadores normales

La aritmética estándar genera un error cuando se produce un desbordamiento para mantener la seguridad del programa: superar el máximo de un tipo normalmente provoca un fallo en lugar de envolver silenciosamente el valor.

let maxByte = UInt8.max
print("Max UInt8:", maxByte)
let safe = Int(maxByte) + 1
print("Promoted sum:", safe)

Suma con desbordamiento &+

Cuando desee intencionadamente que el valor vuelva al principio del rango, utilice los operadores de desbordamiento. &+ pasa del máximo al mínimo en lugar de provocar un fallo.

let maxByte: UInt8 = 255
let wrapped = maxByte &+ 1
print(wrapped)

Resta y multiplicación con desbordamiento

&- y &* realizan el mismo tipo de vuelta dentro del rango. 0 &- 1 para un UInt8 da como resultado 255.

let zero: UInt8 = 0
print(zero &- 1)
let big: UInt8 = 200
print(big &* 2)

Cuándo utilizar operadores de desbordamiento

Utilice &+ &- &* únicamente cuando el comportamiento circular sea intencionado, por ejemplo, en funciones hash o contadores cíclicos. En los demás casos, prefiera los operadores que generan errores para mayor seguridad.

var counter: UInt8 = 254
for _ in 0..<4 {
    counter = counter &+ 1
    print(counter)
}

Comprobación rápida

Razone sobre la vuelta de los valores al producirse un desbordamiento.

Resumen: operadores bit a bit y de desbordamiento

Ha aprendido los operadores bit a bit & | ^ ~ y los desplazamientos << >>; que la aritmética normal genera un error ante un desbordamiento para mayor seguridad; y que &+ &- &* vuelven deliberadamente al principio del rango del tipo.

let mask: UInt8 = 0b1111
let v: UInt8 = 0b10101010
print("Masked:", v & mask)
print("Wrap:", UInt8(0) &- 1)
Gratis para empezar

Aprende Swift con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
122
Lecciones
409

Preguntas frecuentes

¿La lección «Operadores bit a bit y de desbordamiento» es gratis?

Sí — el texto completo de «Operadores bit a bit y de desbordamiento» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Swift Academy, actualiza a CoddyKit PRO. El curso de Swift Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Operadores bit a bit y de desbordamiento»?

Manipule bits y utilice de forma segura operadores de desbordamiento como &+. Practicas Swift Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Swift Academy?

No se requiere experiencia previa. Swift Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Operadores bit a bit y de desbordamiento»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Swift Academy?

Sí. Cada lección de Swift Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Operadores aritméticos y de asignación compuesta
  2. Operadores de comparación e identidad
  3. Operadores lógicos y evaluación de cortocircuito
  4. Operadores bit a bit y de desbordamiento
← Volver a Swift Academy