jueves, 9 de julio de 2015

Complemento a 1

El complemento a uno de un número binario es una operación matemática muy importante en el campo de la computación, ya que nos permite obtener la representación binaria de números negativos. Se obtiene al cambiar cada uno de los dígitos del número binario N por su complementario, esto es, cambiar los unos por ceros y los ceros por unos.
Por ejemplo:

Número binario = (001010110)_2 = (86)_{10}
Complemento a uno = (110101001)_2 = (-86)_{10}

Podemos referirnos al complemento a uno como la función complemento a uno C_1^N, que también se puede definir como el complemento a dos menos una unidad, es decir: 
C_1^N = C_2^N-1

Es trivial a partir de la definición anterior, que el complemento a dos se puede definir como: 
C_2^N = C_1^N + 1

Por ejemplo, vamos a calcular el complemento a 1 del número (45)_{10} que, expresado en binario (101101)_2 tiene 6 dígitos:
N = 45; n = 6; 2^6 = 64

Para n = 8 (8 bits) en Complemento a uno
Valores de 8 bits Interpretado en C1 en decimal interpretado como entero sin signo en decimal:

00000000 0 0
00000001 1 1
00000010 2 2
... ... ...
01111110 126 126
01111111 127 127
10000000 −127 128
10000001 −126 129
10000010 −125 130
... ... ...
11111101 −2 253
11111110 −1 254
11111111 −0 255

Otro enfoque sería representar números negativos usando el complemento a la base menos uno. En el caso de los números binarios, sería el complemento a uno y la forma del complemento a uno de un número binario es un NOT bit a bit aplicado al número, es decir, la inversión de unos por ceros y ceros por unos. De esta forma, en la representación por Complemento a uno de un número signado de n-bits asignamos:

Un bit para representar el signo. Ese bit a menudo es el bit más significativo y, por convención: un 0 denota un número positivo, y un 1 denota un número negativo.

Los (n-1)-bits restantes para representar el significando que es la magnitud del número en valor absoluto para el caso de números positivos, o bien, en el complemento a uno del valor absoluto del número, en caso de ser negativo.

Observar así que la representación en Complemento a uno de un número negativo se puede obtener de la representación en Signo y Magnitud por una mera inversión de unos por ceros y ceros por unos del significando. Este sistema numérico de representación era común en computadoras más antiguas; el PDP-1 y la serie de UNIVAC 1100/2200, entre muchas otras, utilizaron la aritmética en complemento a uno.

la representación con fórmula de manera sencilla seria de la siguiente manera:

C1(x)= 2
n -  x - 1

C1(23)= 28 - 23 -1= 256 - 23 - 1= 23210 

No hay comentarios:

Publicar un comentario