Complemento a uno (inversión de bits en aritmética binaria)
El complemento a uno es una inversión binaria de bits que cambia cada 0 por 1 y cada 1 por 0. Se usó para representar negativos y en algunos algoritmos de suma de comprobación; presenta dos representaciones de cero.
Panorama general
El complemento a uno es una operación binaria básica que invierte cada dígito binario: cada 0 pasa a 1 y cada 1 pasa a 0. A menudo se describe como el complemento a nivel de bits o el NOT lógico de un valor binario. En la informática de bajo nivel y en la lógica digital, esta operación es distinta de la negación aritmética, aunque algunas representaciones numéricas tempranas usaban el complemento a uno para codificar valores negativos. Para un contexto general sobre la notación binaria, véase números binarios.
Representación y ejemplos simples
Aplicado a un campo de ancho fijo, el complemento a uno produce un nuevo patrón con todos los bits invertidos. Por ejemplo, en un sistema de 4 bits, el complemento a uno de 0101 es 1010. Una consecuencia notable es que el cero puede tener dos representaciones: todos ceros (0000) y todos unos (1111) ambos equivalen a la identidad aditiva cuando se interpretan según las reglas del complemento a uno.
Propiedades aritméticas
Cuando el complemento a uno se usa para enteros con signo, los valores negativos se forman tomando el complemento de la magnitud positiva correspondiente. La suma requiere un tratamiento especial: si una suma produce un acarreo que sale del bit más significativo, ese acarreo debe añadirse de nuevo al bit menos significativo (un "acarreo circular"). Este paso adicional distingue la aritmética en complemento a uno de la aritmética en complemento a dos y de la suma binaria sin signo.
Usos e historia
El complemento a uno apareció en varias arquitecturas informáticas tempranas como una forma conveniente de obtener una representación negativa sin bits de signo separados. También aparece en ciertos esquemas de suma de comprobación y detección de errores, donde una suma en complemento a uno se usa para reducir datos de varias palabras a un valor compacto de comprobación. Con el tiempo, muchos sistemas migraron al complemento a dos porque simplifica el hardware y elimina el problema del cero dual.
Comparación y datos destacados
Comparado con las representaciones signo-magnitud y complemento a dos, el complemento a uno es sencillo de calcular pero introduce complicaciones: dos ceros y la necesidad de acarreo circular en la suma. El complemento a dos elimina ambos problemas al definir los negativos como el complemento más uno; véase complemento a dos para más detalles. En la programación moderna, el operador de complemento a nivel de bits (a menudo escrito ~) realiza la misma inversión básica sobre las representaciones binarias, independientemente de si el sistema usa aritmética de enteros en complemento a uno o a dos.
Artículos relacionados
Autor
AlegsaOnline.com Complemento a uno (inversión de bits en aritmética binaria) Leandro Alegsa
URL: https://es.alegsaonline.com/art/72625