Documente Academic
Documente Profesional
Documente Cultură
El
formato
de
representacin
de
nmeros
enteros
por
complementacin ideal para el computador es el formato llamado
Complemento-a-Dos. Abreviaremos su nombre a C-a-2. Como su
nombre indica, ste es un formato que complementa a la base del
sistema numrico usado. Al igual que hicimos con el formato C-a-10,
una vez tenemos la cantidad de posiciones que estaremos usando en
la escritura, calculamos la totalidad de representaciones disponibles y
dividimos stas usando una mitad del total para representar nmeros
negativos y la otra mitad para representar el cero y los positivos. La
gran ventaja de este formato es que integra el signo del nmero en la
escritura y al momento de hacer aritmtica, las cosas se facilitan
grandemente porque no hay que estar examinando el signo de los
operandos.
La gran mayora de las aplicaciones comunes usan datos enteros en
sistema decimal, por lo tanto, toda operacin de Entrada/Salida
requerir que los datos sean convertidos a sistema binario primero y
luego llevados a formato. En el caso de datos positivos, stos pasan a
la representacin directamente tomando slo en cuenta el espacio
finito y fijo de trabajo. Si el dato es negativo, en adicin, se requiere
la complementacin.
DEFINICION:
El formato Complemento-a-Dos es un formato para representar
nmeros con signo fundamentado en el sistema posicional de
escritura con base dos: el sistema binario. Primero, se establece el
espacio de trabajo, es decir, el nmero de posiciones binarias de
escritura o bits. A m bits tenemos 2m representaciones disponibles.
Usamos la mitad de stas para representar los nmeros negativos y la
otra mitad para representar el cero y los nmeros positivos. La
representacin del cero y la asignada a cada entero positivo
corresponde a su escritura en sistema binario, tan slo aadimos
ceros al frente para completar el total de bits a la escritura fija de ser
necesario. Reconoceremos que una representacin corresponde a un
nmero positivo porque siempre comienza con un bit de cero.En el
caso de que la cantidad sea negativa, para buscar su representacin,
es necesario llevar acabo el proceso de complementacin. ste
consiste en buscar la diferencia (cunto le falta) de la magnitud, al
total de representaciones posibles (2m).
COMO COMPLEMENTAR
Necesitamos complementar solamente cuando vamos a buscar la
representacin de un nmero negativo o cuando vamos a leer un
formato que corresponde a negativo. Buscar el complemento de una
cantidad es determinar la diferencia de la cantidad al total de
representaciones. Esta operacin la hacemos directamente en
3.
Smele 1.
Ejemplo:
1.
00010100
2.
11101011
3.
+ 1 = 11101100
8510
binario
> 10101012
2.
-8510
binario
> -10101012
formato
> 01010101
formato*
> 10101011
vuelco
> 55
vuelco
> AB.
*En este caso, como el nmero es negativo, tenemos que pasar por el
proceso de complementacin para llevar a formato. Es decir:
iii.
3.
14510 binario > 100100012 formato > 10010001. Pero esto no
puede ser. Los formatos correspondientes a nmeros positivos
comienzan con un bit de cero. Lo que est sucediendo es que el
nmero es demasiado grande para el espacio de trabajo.
binario
4.
-14510
> -100100012 formato > 01101111. De nuevo,
reconocemos que esto no puede ser porque los formatos
correspondientes a cantidades negativas comienzan con un bit de
uno. Como el nmero es demasiado grande en tamao, tenemos un
problema de overflow.
READ
Miraremos ahora algunos ejemplos donde dado un contenido en su
representacin hexadecimal lo interpretamos bajo el formato C-a-2 .
Recordemos que cada caracter hexadecimal representa cuatro bits.
El nmero de caracteres que representa el contenido nos indica
implcitamente el espacio de trabajo. Al leer un contenido bajo un
formato de entero, esperamos como resultado un entero. Es ms
cmodo expresar el resultado directamente en sistema hexadecimal
para evitar tener que hacer cambios de base que impliquen clculos.
1. 6A formato > 01101010 lectura > 6A16. Como el formato empieza
con cero, sabemos que corresponde a un entero positivo y su lectura
es directa: 1101010 en binario, 6A en sistema hexadecimal.
2. E277 formato > 1110001001110111 lectura > -1D8916. En este
caso, el formato comienza con uno, por lo tanto, representa una
cantidad negativa y para leer su magnitud tenemos que
complementar.
No
olvidemos
de
escribir
el
signo
explcitamente.
La complementacin explicada arriba parte de nmeros escritos en
binario. Si abreviamos la escritura binaria usando caracteres
hexadecimales, es decir, representando por su correspondiente
caracter hexadecimal cada grupo de cuatro bits, entonces nos sera
ms fcil hacer la complementacin directamente con los carcteres
hexadecimales. Slo tenemos que darnos cuenta que en el segundo
paso de la receta para complementar, el cambiar cada bit por su valor
opuesto equivale a restar de 1111...1. En otras palabras, al escribir
este disminuendo en hex, estariamos restando de FF...F. As que
podemos complementar directamente en hexadecimal restando cada
00042123
lectura
> 4212316
Ejemplo 2
no carry-over
no overflow
11000000
11100000
11010011
10100000
Ejemplo 3
Ejemplo 4
01010000
01100001
10110001
carry-over
no overflow
10000010
no carry-over
overflow
10000110
00001000
carry-over
overflow