0% encontró este documento útil (0 votos)
215 vistas10 páginas

Complemento A Uno

El documento describe los complementos a uno y a dos, que son operaciones matemáticas importantes para representar números negativos en binario. También explica el código BCD (Binary Coded Decimal) que permite representar números decimales en binario de una manera que facilita las operaciones aritméticas.

Cargado por

Ronaldgonzales
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
215 vistas10 páginas

Complemento A Uno

El documento describe los complementos a uno y a dos, que son operaciones matemáticas importantes para representar números negativos en binario. También explica el código BCD (Binary Coded Decimal) que permite representar números decimales en binario de una manera que facilita las operaciones aritméticas.

Cargado por

Ronaldgonzales
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Complemento a uno

Complemento a uno Decimal


0111
7
0110
6
0101
5
0100
4
0011
3
0010
2
0001
1
0000
0
1111
0
1110
1
1101
-2
1100
3
1011
4
1010
5
1001
6
1000
7
Complemento a uno con enteros de 4 bits
El complemento a uno de un nmero binario es una operacin matemtica muy importante
en el campo de la computacin, ya que nos permite obtener la representacin binaria de
nmeros negativos. Se obtiene al cambiar cada uno de los dgitos del nmero binario N por
su complementario, esto es, cambiar los unos por ceros y los ceros por unos.
Por ejemplo:
Nmero binario =
Complemento a uno =

Podemos referirnos al complemento a uno como la funcin complemento a


uno

, que tambin se puede definir como el complemento a dos menos una

unidad, es decir

. Es trivial a partir de la definicin anterior, que

el complemento a dos se puede definir como

Por ejemplo, vamos a calcular el complemento a 1 del nmero


expresado en binario
;

que,

tiene 6 dgitos:

su complemento a
dos es:
complemento a uno es una unidad menor:

y, su

010011
-000001
------010010

Existe una desventaja a la hora de utilizar el complemento a uno para representar


nmeros negativos que hace ms adecuado el complemento a dos, y es que
existen dos posibles representaciones para el nmero cero.

Complemento a dos
Complemento a Decim
dos
al
0111

0110

0101

0100

0011

0010

0001

0000

1111

1110

1101

1100

1011

1010

1001

1000

Complemento a dos con enteros de 4 bits


El complemento a dos de un nmero N que, expresado en el sistema binario est compuesto
por n dgitos, se define como:
.
El total de nmeros positivos ser
mximo de bits. El 0 contara aparte.
Veamos un ejemplo: tomemos el nmero
es

y el de negativos

, siendo n el nmero

que, cuando se expresa en binario

, con 6 dgitos, y calculemos su complemento a dos:

y, por lo tanto:

Puede parecer farragoso, pero es muy fcil obtener el complemento a dos de un


nmero a partir de su complemento a uno, porque el complemento a dos de un
nmero binario es una unidad mayor que su complemento a uno, es decir:

Cabe sealar que en este ejemplo se ha limitado el nmero de bits a 6, por lo que
no sera posible distinguir entre el -45 y el 19 (el 19 en binario es 10011). En
realidad, un nmero en complemento a dos se expresa con una cantidad arbitraria
de unos a la izquierda, de la misma manera que un nmero binario positivo se
expresa con una cantidad arbitraria de ceros. As, el -45, expresado en
complemento a dos usando 8 bits sera 11010011, mientras que el 19 sera
00010011; y expresados en 16 bits seran 1111111111010011 y
0000000000010011 respectivamente. Se presenta la tabla de verdad del
complemento a 2 para cuatro dgitos.

Clculo del complemento a dos[editar]


El clculo del complemento a dos es muy sencillo y muy fcil de realizar mediante
puertas lgicas, donde reside su utilidad.
Para comenzar los nmeros positivos se quedarn igual en su representacin
binaria. Los nmeros negativos deberemos invertir el valor de cada una de sus
cifras, es decir realizar el complemento a uno, y sumarle 1 al nmero obtenido.
Podemos observar esto en la tabla de ejemplo.
Cabe recordar que debido a la utilizacin de un bit para representar el signo, el
rango de valores ser diferente al de una representacin binaria habitual; el rango
de valores decimales para n bits ser:

Conversin rpida[editar]
Una forma de hallar el opuesto de un nmero binario positivo en complemento a
dos es comenzar por la derecha (el dgito menos significativo), copiando el
nmero original (de derecha a izquierda) hasta encontrar el primer 1, despus de
haber copiado el 1, se niegan (complementan) los dgitos restantes (es decir,
copia un 0 si aparece un 1, o un 1 si aparece un 0). Este mtodo es mucho ms
rpido para las personas, pues no utiliza el complemento a uno en su conversin. 1
Por ejemplo, el complemento a dos de 0011 11010 es 1100 00110-

Otra forma es negar todos los dgitos (se halla el complemento a 1) y despus
sumar un 1 al resultado, viene a ser lo mismo que lo anteriormente explicado.
100001 ---> 011110 --> 011111
Es equivalente negar todos los dgitos haciendo XOR contra un nmero con la
misma cantidad de dgitos binarios pero lleno de 1s y sumar 1 al resultado. En la
prctica podra explicarse como:
100001 XOR 111111 = 011110
Agregando 1 = 011111
Para implementarlo en una rutina escrita en el lenguaje de programacin
C, asumiendo que 'x' es la cantidad a la que se le calcular el
complemento a 2, 'n' el nmero mximo de bits de las cantidades
representadas y 'y' es la variable en donde se almacenar el resultado. El
clculo podra escribirse como:
y=((x^^(2^n-1)++))&&(2^n-1);
Si 'n' no va a cambiar a lo largo del programa, puede sustituirse como
una constante y con ello acelerar el clculo y disminuir los recursos
de cmputo consumidos. Por ejemplo, si todos los clculos son en 8
bits, la rutina anterior podra simplificarse a:
y=((x^^0xFF)++)&&0xFF;

Aplicaciones[editar]
Su utilidad principal se encuentra en las operaciones
matemticas con nmeros binarios. En particular, la resta de
nmeros binarios se facilita enormemente utilizando el
complemento a dos: la resta de dos nmeros binarios puede
obtenerse sumando al minuendo el complemento a dos del
sustraendo. Se utiliza porque la unidad aritmtico-lgica no resta
nmeros binarios, suma binarios negativos, por eso esta
conversin al negativo.

Decimal codificado en binario


En sistemas de computacin, Binary-Coded Decimal (BCD) o Decimal codificado en
binario es un estndar para representar nmeros decimales en el sistema binario, en donde
cada dgito decimal es codificado con una secuencia de 4 bits. Con esta codificacin especial

de los dgitos decimales en el sistema binario, se pueden realizar operaciones aritmticas


como suma, resta, multiplicacin y divisin de nmeros en representacin decimal, sin perder
en los clculos la precisin ni tener las inexactitudes en que normalmente se incurre con las
conversiones de decimal a binario puro y de binario puro a decimal. La conversin de los
nmeros decimales a BCD y viceversa es muy sencilla, pero los clculos en BCD se llevan
ms tiempo y son algo ms complicados que con nmeros binarios puros.

Representacin BCD[editar]
Cada dgito decimal tiene una representacin binaria codificada con 4 bits:

Decimal:
BCD:

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

Los nmeros decimales, se codifican en BCD con los bits que representan sus dgitos.
Por ejemplo, la codificacin en BCD del nmero decimal 59237 es:

Decimal:
BCD:

0101 1001 0010 0011 0111

La representacin anterior (en BCD) es diferente de la representacin del mismo nmero


decimal en binario puro:

1110011101100101

Fundamentos[editar]
En BCD cada cifra que representa un dgito decimal (0, 1,...8 y 9) se representa con su
equivalente binario en cuatro bits (nibble o cuarteto) (esto es as porque es el nmero de bits
necesario para representar el nueve, el nmero ms alto que se puede representar en BCD).
En la siguiente tabla se muestran los cdigos BCD ms empleados:

Decimal Natural Aiken 5 4 2 1 Exceso 3

0000

0000

0000

0011

0001

0001

0001

0100

0010

0010

0010

0101

0011

0011

0011

0110

0100

0100

0100

0111

0101

1011

1000

1000

0110

1100

1001

1001

0111

1101

1010

1010

1000

1110

1011

1011

1001

1111

1100

1100

Como se observa, con el BCD slo se utilizan 10 de las 16 posibles combinaciones que se
pueden formar con nmeros de 4 bits, por lo que el sistema pierde capacidad de
representacin, aunque se facilita la compresin de los nmeros. Esto es porque el BCD slo

se usa para representar cifras, no nmeros en su totalidad. Esto quiere decir que para
nmeros de ms de una cifra hacen falta dos nmeros BCD.

Una forma sencilla de calcular nmeros en BCD es sumando normalmente bit a bit, y
si el conjunto de 4 bits sobrepasa el nmero 9, entonces se le suma un 6 (0110) en
binario, para poder volver a empezar, como si hiciramos un mdulo al elemento sumante.

Desde que los sistemas informticos empezaron a almacenar los datos en conjuntos de
ocho bits (octeto), hay dos maneras comunes de almacenar los datos BCD:

Omisin de los cuatro bits ms significativos (como sucede en el EBCDIC)

Almacenamiento de dos datos BCD; es el denominado BCD "empaquetado", en el


que tambin se incluye en primer lugar el signo, por lo general con 1100 para el +
y 1101 para el -.

De este modo, el nmero 127 sera representado como (11110001, 11110010, 11110111)
en el EBCDIC o (00010010, 01111100) en el BCD empaquetado.
El BCD sigue siendo ampliamente utilizado para almacenar datos, en aritmtica binaria o
en electrnica. Los nmeros se pueden mostrar fcilmente en visualizadores de siete
segmentos enviando cada cuarteto BCD a un visualizador. La BIOS de un ordenador
personal almacena generalmente la fecha y la hora en formato BCD; probablemente por
razones histricas se evit la necesidad de su conversin en ASCII.
La ventaja del cdigo BCD frente a la representacin binaria clsica es que no hay lmite
para el tamao de un nmero. Los nmeros que se representan en formato binario estn
generalmente limitados por el nmero mayor que se pueda representar con 8, 16, 32 o 64
bits. Por el contrario, utilizando BCD, aadir un nuevo dgito slo implica aadir una nueva
secuencia de 4 bits.

CONVERSIONES DE DECIMAL A XS3 (EXCESO 3)[editar]


La conversin de nmeros decimales a exceso 3 (Xs3) se lo realiza de la siguiente forma:
Ejemplo:
Transformar el decimal 67 a xs3
Tomamos cada dgito y le sumamos 3:
6+3=9
7+3=10
Ahora cada cantidad es transformada a binario:

9=1001
10= 1010
Por lo que el resultado de la conversin a xs3 ser el nmero 10011010

El BCD en electrnica[editar]
El BCD es muy comn en sistemas electrnicos donde se debe mostrar un valor
numrico, especialmente en los sistemas digitales no programados
(sin microprocesador o microcontrolador).
Utilizando el cdigo BCD, se simplifica la manipulacin de los datos numricos que deben
ser mostrados por ejemplo en un visualizador de siete segmentos. Esto lleva a su vez una
simplificacin en el diseo fsico del circuito (hardware). Si la cantidad numrica fuera
almacenada y manipulada en binario natural, el circuito sera mucho ms complejo que si
se utiliza el BCD. Hay un programa que se llama b1411 que sirve para dividir al sistema
binario en dos combinaciones. Una por ejemplo es la de sistemas digitales.

IBM y el BCD[editar]
IBM utiliz los trminos decimal codificado en binario y BCD, para el cdigo binario de
seis bits con el que se podan representar nmeros, letras maysculas, y caracteres
especiales. Una variante del BCD fue utilizada en la mayora de las primeras
computadoras de IBM, incluyendo IBM1620 e IBM 1400. Con la introduccin
des System/360, el BCD fue substituido por el EBCDIC, de ocho bits.
Las posiciones de los bits, en el BCD de seis bits, generalmente fueron etiquetadas
como B, A, 8, 4, 2 y 1. Para codificar los dgitos numricos, A y B eran cero. La letra A fue
codificada como (B, A, 1), etctera.

Historia legal[editar]
En 1972, el Tribunal Supremo de Estados Unidos anul la decisin de una instancia ms
baja de la corte que haba permitido una patente para convertir nmeros codificados BCD
a binario en una computadora (vase Gottschalk v Benson en ingls). Este fue uno de los
primeros casos importantes en la determinacin de la patentabilidad del software y de los
algoritmos.

También podría gustarte