You are on page 1of 31

2da Parte: Codificación Binaria

Contenido
2. CÓDIGOS BINARIOS ---------------------------------------------------------------------------------------------- 2
2 1. Códigos de cambio único 2
2.1.2 - Error de alineamiento del código en binario --------------------------------------------------- 5
2.1.2 - Solución al error de alineamiento del código en binario, el Cambio único ------------- 6
2 2. Código Gray 7
2.2.1. Conversión De Gray a Binario 7
2.2.2. Conversión De Binario a Gray 8
2.3. Codificación de los caracteres alfanuméricos ---------------------------------------------------- 9
2.3.1. El código ASCII 9
2.4. Codificación de los números 10
2.4.1. Operaciones aritméticas entre magnitudes binarias---------------------------------------- 10
2.4.1 1. Suma de magnitudes 11
2.4.1 2. Resta de magnitudes 13
2.4.1.3. Resta de magnitudes – Complemento A1 – Complemento A2 --------------------- 16
2.4.2. Códigos para números binarios enteros ------------------------------------------------------- 18
2.4.2.1 Codificación en Complemento a 2 ---------------------------------------------------------- 18
Números Positivos: 18
Números Negativos: 19
¿Cómo saber cuándo si hay overflow o underflow (complemento a 2)? ---------------- 19
2.4.2.2. Suma de enteros codificados en complemento a 2 ----------------------------------- 20
2.4.2.3. Resta de enteros codificados en complemento a 2 ----------------------------------- 21
2.5. Códigos binarios para números decimales y Hexadecimales ----------------------------------- 23
2.6. Representación en coma flotante (norma Número 754 del IEEE) ----------------------------- 24
2.6.1¿Por qué es importante saber Formato punto flotante? - Los Flops --------------------- 25
2.6.2. Procedimiento para representar un número en formato punto flotante precisión
simple de 32 Bits. 26
2.6.2.1. Como pasar un numero de formato simple en Presicion Simple a decimal ----- 28

1
2. CÓDIGOS BINARIOS
Los códigos pueden tratarse de una combinación de símbolos que, en el marco
de un sistema ya establecido, cuente con un cierto valor.
En otras palabras, Código es una serie de símbolos que
por separado no representan nada, pero al combinarlos pueden
generar un lenguaje comprensible solo para aquellos quienes lo
entiendan.
Un código puede ser interpretado si se conoce su fuente (de donde proviene) y
cuál es su objetivo (para que sirve), las condiciones sobre las cuales se cree un código
son ampliamente variadas, ya que, no sólo los códigos son creados con el propósito de
comunicarse, sino también para acceder a sitios en los que no está permitida la entrada
de cualquier individuo.
En el caso de la informática, se conoce como código fuente al texto desarrollado
en un lenguaje de programación y que debe ser compilado o interpretado para poder
ejecutarse en una computadora.
Otro caso es el Código Objeto que es un conjunto de instrucciones y datos
escritos en un lenguaje que entiende la computadora directamente: binario o código
máquina. Provienen de la traducción de cierto código fuente, es un fragmento del
programa final y es específico de la plataforma de ejecución.

2.1. Códigos de cambio único


Para entender la necesidad de estos códigos consideremos el siguiente
caso.
En proyectos de robótica, mecatrónica, o cualquier otro que requiera medir
movilidad o cambios mecánicos, se hace necesario adicionar algún tipo de sensor que
pueda contabilizar la cantidad de movimiento y el sentido del mismo.
Si se desea poder aplicar algún algoritmo de utilidad a dicho robot que permita
determinar su posición y desplazamiento relativo, es imprescindible que exista alguna
manera de medir el movimiento de las ruedas, contabilizar la distancia que recorre y el
sentido de giro de estas.

2
Un encoder es un sensor o
transductor rotativo que transforma el
movimiento angular (como el de la ruedita del
mouse) en una serie de impulsos digitales
Aplicación - Sensores de posición
Absolutos (encoder)
• En robótica, donde la posición del
brazo del robot es necesaria para
realizar el siguiente movimiento sin
destruir el robot.
• En sistemas de seguridad y vigilancia
para indicar la orientación de las
cámaras CCTV.
• En grúas, grúas marítimas, palas
mecánicas y motores eléctricos de
maquinaria pesada.
• En elevadores para indicarle al elevador si debe subir o bajar.
• Controles industriales para la transportación de materiales.
• Un radar giratorio para conocer el ángulo preciso de rotación.
Situación;
Deseamos conocer la posición angular del eje de un motor, para lo que hemos
de acoplarle un disco, solidario con el movimiento del eje, y dividido en un número de
sectores tanto mayor cuanto mejor sea la precisión con que
deseemos conocer la posición angular.
Para simplicidad de la presentación, supongamos
que sólo necesitamos una indicación grosera de la posición
angular del eje, por lo que bastará dividir el disco asociado
en 4 cuadrantes.
Para la representación de estos cuadrantes
podemos utilizar un código binario de 2 bits (b1 y b0) que nos ofrece las 4
combinaciones que requerimos. Por ejemplo, podríamos utilizar la siguiente tabla de
correspondencia que, aunque surge muy naturalmente, más adelante criticaremos:

3
Para implementar un instrumento que determine la posición del eje en cada
momento según el código propuesto, trazaremos sobre el disco dos pistas concéntricas
y lo dividiremos en cuatro sectores iguales, es decir en cuatro cuadrantes, como muestra
la figura 1.
En los dos segmentos de pista correspondientes a cada cuadrante colocaremos
los dos bits que identifican a dicho cuadrante a razón de uno por pista, con el bit menos
significativo (b0) en la pista externa.

1 - Codificado en Binario

Así se ha hecho en la figura mencionada donde los sectores de pista oscuros


representan a un 1, mientras que los claros representan a un 0.
Para poder reconocer la posición angular del eje se asocia
al mismo un par de Sensores fotoeléctricos (uno por pista)
alineados radialmente y colocados en forma fija, es decir, no
solidarios con el movimiento del disco.
Con esta disposición, según la posición del disco, la luz emitida por cada emisor
se enfrentará a un sector opaco o transparente.
• Si se enfrenta a un sector opaco, la
luz queda obstaculizada y el receptor
no recibe la señal.

• Si se enfrenta a un sector transparente, la luz


traspasa y el receptor recibe la señal.

Las diferentes combinaciones posibles de


sectores dan origen a una señal de salida digital formada por dos bits(en este caso) que
puede ser posteriormente procesada.

1
Realización de gráficos por Walter Salguero - UNPAZ

4
2.1.2 - Error de alineamiento del código en binario
Este sistema de medición binario tiene un inconveniente asociado al hecho de
que, por imperfecciones inevitables, los sensores no están perfectamente alineados
radialmente.
Esto no produce ningún inconveniente cuando los Sensores se encuentran
apartados de las zonas de frontera entre un sector y otro.
Pero, cuando están justo sobre una de las fronteras, el error de alineamiento
puede hacer que mientras uno de los sensores repose en uno de los sectores, el otro lo
haga en otro.

2 - Error de alineamiento con Codificado en Binario

Como se puede apreciar en la figura antecesora se dan dos posibilidades:


• En la frontera entre los cuadrantes 1 y 2 donde sólo un bit cambia al atravesar la
frontera, un ligero error de alineamiento del sensor asociado a la pista que no
cambia (en este caso la correspondiente al bit más significativo) no tiene
consecuencia ninguna pues se apoye en uno u otro sector su indicación será la
misma.
Por su parte, un error de alineamiento en el sensor correspondiente a la pista
que cambia hace que, según sea la pista sobre la que finalmente reposa, el
código leído sea 00 ó 01. Como estas combinaciones se corresponden a los
cuadrantes 1 y 2 respectivamente, ambas son en realidad aceptables cuando los
palpadores están justo sobre la frontera entre ambos cuadrantes, por lo que el
error de alineamiento no tiene consecuencias indeseables. Algo similar puede
decirse en la frontera entre los cuadrantes 3 y 4, donde también sólo cambia un
bit al atravesar la frontera.

2
Realización de gráficos por Walter Salguero - UNPAZ

5
• Muy distinto es el caso cuando los palpadores se encuentran sobre la frontera
entre los cuadrantes 2 y 3, en la que ambas pistas cambian de estado, donde un
error de alineamiento puede producir que ambos sensores detecten un 1, o
ambos un cero, resultados estos absolutamente inaceptables ya que 11 es la
combinación asignada al cuadrante 4, y 00 es la del cuadrante 1. Algo similar
ocurre en la frontera entre los cuadrantes 4 y 1 por la posible aparición de las
combinaciones erradas 01 y 10.
2.1.2 - Solución al error de alineamiento del código en binario, el Cambio único
Se notará que, para evitar los
inconvenientes mencionados, se deben
representar los cuadrantes adyacentes
asignándoles combinaciones que sólo difieran en
un único bit, es decir, que al atravesar una
frontera lo hagan siempre con un cambio único.
En nuestro ejemplo, esto se logra adoptando la
siguiente tabla de correspondencia:

En la figura 3 se aprecia el disco que implementa esta idea.

A la derecha, podemos ver una figura en


donde hay una mayor de precisión angular
comparado al ejemplo antecesor en vez de
trabajar con dos bits, en esta situación trabaja
con cuatro bits.

3
Realización de gráficos por Walter Salguero - UNPAZ

6
Los códigos para los que la combinación que representa a un elemento no difiere
más que en un bit de la que representa al elemento anterior se denominan códigos
continuos. Cuando en un código continuo se tiene que tampoco difieren en más de un
bit las combinaciones correspondientes al primer elemento y al último, se dice que se
trata de un código cíclico. Es evidente que para codificar un eje en la forma que hemos
descripto se necesita un código cíclico, y que el código encontrado califica como tal.
Al código resultante se lo conoce como código Gray, y a el dedicaremos el
próximo apartado.

2.2. Código Gray

Para entender como es el código Gray, es


conveniente recordar cómo se forman los sucesivos
números binarios a partir del 0, y mostrar paralelamente
la forma de generar las sucesivas palabras del código
Gray, con el fin de destacar similitudes y diferencias.
Veamos la tabla siguiente, números binarios y las
primeras 16 palabras del código Gray.

2.2.1. Conversión De Gray a Binario4


Para convertir un número código Gray a binario, se sigue el siguiente método:
(analizar los gráficos siguientes)

1010 (Gray) = (2)


1. El primer dígito del código Gray será el mismo que el del binario.

Gray
Binario

2. Si:
• el 2do dígito del código Gray es “0”,
• el 1er dígito binario es “1”
• Se hará la suma en Gray; 0 + 1 = 1

Gray
Binario

4
Realización de gráficos por Walter Salguero - UNPAZ

7
3. Si:
• el 3er dígito del código Gray es “1”,
• el 2do dígito binario es “1”
• Se hará la suma en Gray; 1 + 1 = 0

Gray
Binario

4. Si:
• el 4to dígito del código Gray es “0”,
• el 3er dígito binario es “0”
• Se hará la suma en Gray; 0 + 0 = 0

Gray
Binario

Por lo tanto, el resultado es;

1010 (Gray) =1100 (2)


2.2.2. Conversión De Binario a Gray
Para convertir un número binario a código Gray, se sigue el siguiente método:
(analizar el gráfico siguiente)

1100 (2) = (Gray)

1. Se suma el número en binario con el mismo, pero el segundo sumando


debe correrse una cifra a la derecha. Ver el gráfico.
2. Se realiza una suma en gray cifra con cifra sin tomar en cuenta el acarreo
y se obtiene la suma total.
3. Al resultado anterior se le elimina la última cifra del lado derecho (se
elimina el ultimo “0” (o “1” en el caso que este) que está en la derecha
siempre se elimina), para obtener el código GRAY.

1100 (2) = 1010 (Gray)

8
2.3. Codificación de los caracteres alfanuméricos
2.3.1. El código ASCII
El código ASCII (sigla que comúnmente se pronuncia «asqui» y que significa
American Standard Code for Information Interchange, o bien Código Estándar
Norteamericano para Intercambio de Información) es una representación de los
caracteres alfanuméricos que facilita la comunicación entre distintos dispositivos
digitales. Las letras, los números, los símbolos y los acentos tienen su correspondiente
número ASCII, de manera que programas desarrollados por diferentes personas y
equipos fabricados por una u otra compañía pueden entender el texto de la misma
forma.
El código ASCII representa cada carácter con un número del 0 al 127, en escala
decimal. Para el procesador, se trata de una cadena binaria de 7 dígitos, donde 127 se
expresa como 1111111. Esto resulta especialmente útil en la confección de sitios web;
cuando existen formularios a rellenar por los usuarios, y sobre todo si la página tiene
versiones en varios idiomas, es muy importante realizar un meticuloso procesamiento
del texto ingresado para asegurar que se almacene (en la base de datos) de forma tal
que a la hora de revisar dicha información no existan errores al imprimir los caracteres
especiales.

9
Un detalle de interés es que en las computadoras personales puede hacerse
imprimir en pantalla uno de los caracteres que su código posee
1) Presiona la tecla “Alt” en tu teclado, y no la sueltes.
2) Sin dejar de presionar “Alt”, presiona en el teclado numérico el número del
carácter que necesitas en el código ASCII.
3) Luego deja de presionar la tecla “Alt”.

2.4. Codificación de los números


Recordemos que en Matemática los números se suelen clasificar en.
• números naturales
• números enteros
• números racionales
• números reales
• números complejos
En los sistemas digitales suele ser necesario codificar estos tipos de números, aunque
con las siguientes variantes:
• las magnitudes binarias
• los enteros binarios
• los números reales binarios
• los decimales codificados en binario
Estudiaremos magnitudes binarias en los apartados que siguen.
2.4.1. Operaciones aritméticas entre magnitudes binarias
Para realizar cálculos con números binarios primero tenemos que observar la
cantidad de bits con los que estamos trabajando. En este caso pondremos como
ejemplo un numero de 4 Bits; 0011

Esto querrá decir que estaríamos trabajando con una computadora que podrá
hacer cálculos aritméticos y lógicos con solo con 4 bits.

El Intel 4004, un CPU de 4bits, fue el primer microprocesador en un simple chip, así
el primero disponible comercialmente.

10
2.4.1.1. Suma de magnitudes5
A continuacion se representaran los cinco posibles casos al realizar una suma
binaria;

5
Realización de gráficos por Walter Salguero - UNPAZ

11
La suma de las representaciones de dos magnitudes se realiza bit a bit de la
manera habitual, obteniéndose el resultado correcto a menos que dicha operación arroje
un resultado mayor o igual a 2n, que no puede ser representado con n bits.
Por Ejemplo, si están sumando con 4Bits

2n
n = número de bits.

Resolución: 24 = 16(10)
Al darnos como resultado 16(10)
• todo lo que dé como resultado un numero decimal mayor e igual a 16 será overflow
10000(2) = 16(10)
Cuando ello ocurre, se advierte fácilmente pues la suma produce un acarreo que
emerge de la suma de los bits más significativos (que llamaremos acarreo final. Es decir,
que las reglas para sumar son las siguientes:
1) sumar los dos operandos bit a bit de la manera habitual para obtener el resultado
de la suma expresado con n bits.
2) si hay acarreo final, el resultado real es de una magnitud tan grande que excede
la capacidad de representación del código, y el resultado obtenido es inválido.
De no producirse este acarreo, el resultado obtenido es correcto.
Veamos un par de ejemplos en los que las magnitudes se han representado con 8 bits:
a)

La ausencia de un acarreo final indica que el resultado es correcto.


b)
¿Porque invalido? Porque se están sumando con 8Bits

2n
n = número de bits.

La presencia del Resolución: 28 = 256(10)


acarreo final, simbolizado
Al darnos 256(10) todo numero que supere esa cifra será invalido.
por la flecha saliente del bit
más significativo, indica que 11001101 + 11001110 = 110011011
el resultado es inválido.
• El resultado supera los 8Bits, ósea, tiene 9Bits

• En decimal el resultado es 411(10) y supera los 256(10)

12
A continuación, se muestran los ejemplos según como fue explicado en clase virtual;

2.4.1.2. Resta de magnitudes6

6
Realización de gráficos por Walter Salguero - UNPAZ

13
La resta de las representaciones de dos magnitudes se realiza bit a bit de la
manera habitual, obteniéndose el resultado correcto a menos que dicha operación arroje
un resultado menor que cero, que no constituye ya una magnitud y que por lo tanto no
puede ser representado como tal.7
Cuando ello ocurre, se advierte fácilmente pues la resta requiere que un
préstamo ingrese en la resta de los bits más significativos (que llamaremos préstamo
final). Es decir, que las reglas para restar son las siguientes:
1) restar los dos operandos bit a bit de la manera habitual para obtener el resultado
de la resta expresado con n bits.
2) Si hay un préstamo final el resultado obtenido es inválido, pues el resultado real
es un número negativo y no una magnitud. De no producirse este acarreo, el
resultado obtenido es correcto.

7
SINDERMAN, Jorge, TÉCNICAS DIGITALES, DISPOSITIVOS, CIRCUITOS, DISEÑO Y APLICACIONES, 2da.
Edición, Nueva Librería, Marzo del 2007, ISBN 978 -987-1104-51-2.

14
Veamos la aplicación práctica de esta regla con un par de ejemplos con magnitudes
representadas con 8 bits:
a)

La ausencia de un préstamo final indica que el resultado es correcto.


b)

La presencia del préstamo final, simbolizado por la flecha entrante al bit más
significativo, indica que el resultado es invalido.

A continuación, se mostrarán ejemplos vistos en clase;

15
2.4.1.3. Resta de magnitudes – Complemento A1 – Complemento A2
Esta nueva regla es muy interesante para la implementación de circuitos
electrónicos de cálculo, que frecuentemente deben poder sumar y restar, y que por
utilización de esta regla pueden tener un circuito sumador utilizable para ambos fines,
en vez de tener que tener un sumador y un restador.

Circuito Integrado Sumador Binario Completo 4 Bits SN74LS83N

La operación de restar puede realizase de otra forma, utilizando el concepto de


complemento de una magnitud. Veamos primero este nuevo concepto, y luego
apliquémoslo a la realización de la resta por un procedimiento distinto al visto más arriba.
Dada una magnitud representada con n bits, se denomina complemento a 1 de
dicha magnitud, a la magnitud que resulta de invertir en la primera todos los bits
(entendiendo por invertir a cambiar los ceros por unos y viceversa). Veamos los
siguientes ejemplos, correspondientes a casos en que se representan las magnitudes
con 8 bits:
a) el complemento a 1 de 10101101 es 01010010
b) el complemento a 1 de 00010110 es 11101001
Otra operación de complemento que resulta de interés es la de complementación
a 2. Así, se define el complemento a 2 de una magnitud representada con n bits
como la resta entre la máxima magnitud representable incrementada en 1 (o sea 2 n) y
la magnitud a complementar. De acuerdo con esta definición, para las mismas
magnitudes consideradas en el ejemplo visto en el caso del complemento a 1, el cálculo
del complemento a 2 se realiza como sigue:

16
Teniendo en cuenta que el complemento a 2 de una magnitud es igual a su
complemento a 1 más 1, se puede expresar otra regla alternativa para restar magnitudes
de n bits, de la siguiente forma:
1) sumar al minuendo el complemento a 1 del sustraendo, procediendo bit a bit de
la manera habitual y adicionando un 1 a esa suma, para obtener el resultado de
la resta expresado con n bits.
2) si no hay acarreo final, el resultado obtenido es inválido, pues el resultado real
es un número negativo y no una magnitud.
Volviendo a hacer el ejemplo (pero con diferentes números) al anterior con esta regla,
tendremos8:

La ventaja de este método es que es el más fácil de implementar por medio de


circuitos electrónicos, porque el complemento a 1 es más fácil de realizar que el
complemento a 2, y el tener que sumar un 1 no constituye dificultad cuando para restar
se está usando un circuito sumador.

8
Escrito y realización de gráficos por Walter Salguero - UNPAZ

17
2.4.2. Códigos para números binarios enteros
Existen varios códigos de bloque que se utilizan para representar a los números
enteros binarios. Ellos son los llamados:
• Signo y magnitud
• Complemento a 2
• Complemento a 1

El Microprocesador contiene la ALU que se compone básicamente de: Circuito Operacional:


Contiene los circuitos electrónicos necesarios para la realización de las operaciones con los
datos de las memorias.
Al realizar los cálculos, como reiteradas veces se dijo, es en binario, y por lo tanto no reconoce
símbolos como el de negativo (-) o el positivo (+), y por lo tanto hay que codificarlos en
complemento A2 para que pueda operar con números negativos.
En otras palabras, El complemento a 1 y a 2 de un número binario son importantes
porque permiten la representación de números negativos. El método de complemento a 2 en
aritmética es comúnmente usada en computadoras para manipular números negativos.

2.4.2.1 Codificación en Complemento a 29


Uno de los objetivos del complemento a 2 es codificar el signo + o – de un número,
ya que el lenguaje de una computadora es binario.

Números Positivos:
NUMERO BINARIO POSITIVO NUMERO EN COMPLEMENTO A 2 POSITIVO

+ 1 0 1 0 1 1 2 8 Bits 0 0 1 0 1 0 1 1 CA2
Complemento a 2

En el ejemplo de la imagen anterior podemos ver como convertir un numero


positivo binario a un número positivo en complemento a 2.
Simplemente se agregan los ceros faltantes para llegar a los 8bits, luego el 1er
bit “0” más significativo pasara ser el signo positivo, ósea, + = 0

9
Escrito y realización de gráficos por Walter Salguero - UNPAZ

18
Números Negativos:
A diferencia del número positivo, un numero binario negativo se debe primero pasar a
Complemento a 1, y luego a complemento a 2.
NUMERO BINARIO NEGATIVO

- 1 0 1 1 0 2

1ro Le agregamos los tres ceros que le faltan ya que trabajaremos con 8 bits.
- 1 0 1 1 0 2

- 0 0 0 1 0 1 1 0 2

2do Invertiremos cada uno de los dígitos de tal manera pasaremos de un numero
binario a complemento a 1.

3ro Por ultimo sumamos “1” al numero en “complemento a 1” , y de esta manera


pasaremos el numero en complemento a 2.

1er bit “1” más significativo pasara ser el signo negativo, ósea, - = 1

En conclusión, siempre para pasar un numero negativo a otro tenemos que seguir los
siguientes pasos;

¿Cómo saber cuándo si hay overflow o underflow (complemento a 2)?


Para responder a la pregunta utilizaremos la siguiente formula;

2n-1
n = número de bits.

Resolución: 24-1 = 23 = 8(10)

19
Al darnos como resultado 8(10)

• todo lo que dé como resultado un numero decimal mayor e igual a 8 será overflow
• todo lo que dé como resultado un numero decimal menor e igual a -8 será underflow

1000(2) = 8(10)
2.4.2.2. Suma de enteros codificados en complemento a 210
1 – Suma de dos números positivos
Regla: “La suma de dos números positivos tiene que dar como resultado un numero positivo”.

1er Ejemplo
Decimal
0 0 1 1 CA2 (+3)
+ +
0 0 1 0 CA2 (+2)
0 1 0 1 CA2 (+5)

Es Valido dio como resultado un numero positivo, además haciendo el mismo calculo en
decimal da como resultado +5, siendo menor a +8.

2do Ejemplo
Decimal
0 0 1 1 CA2 (+3)
+ +
0 1 1 0 CA2 (+6)
1 0 0 1 CA2 (+9)

Es Invalido dio como resultado un número negativo, además haciendo el mismo calculo en
decimal da como resultado +9, siendo mayor e igual a +8.

2 – Suma de dos números negativos


Reglas:

• “La suma de dos números negativos tiene que dar como resultado un numero negativo”.
Siempre tiene que dar con desborde el resultado, ya que se esta sumando siempre 1 + 1 =
10
• El desborde lo descartamos, ósea, lo tachamos sin tenerlo en cuenta.
1er Ejemplo
Decimal
1 1 0 0 CA2 (-4)
+ +
1 1 1 0 CA2 (-2)
1 1 0 1 0 CA2 (-6)

10
Escrito y realización de gráficos por Walter Salguero - UNPAZ

20
Es válido dio como resultado un número negativo, y con desborde, además haciendo el mismo
calculo en decimal da como resultado -6, siendo mayor -8.

2do Ejemplo

Es inválido dio como resultado un número positivo, aunque halla dado con desborde, además
haciendo el mismo calculo en decimal da como resultado -10, siendo menor e igual -8.

3 – Suma de dos números de distinto signo


Regla:

• “Siempre da correcto la suma de dos números de diferente signo”.


• El desborde lo descartamos, ósea, lo tachamos sin tenerlo en cuenta.

1er Ejemplo
Decimal
1 1 0 0 CA2 (-4)
+ +
0 0 1 0 CA2 (+2)
1 1 1 0 CA2 (-2)

Es válido Siempre da correcto la suma de dos números de diferente signo, haciendo el mismo
calculo en decimal da como resultado -2, siendo mayor que -8.

1110(CA2) = 1101(CA1) = -0010(2) = -2(10)


2do Ejemplo
Decimal
1 1 0 0 CA2 (-4)
+ +
0 1 1 1 CA2 (+7)
1 0 0 1 1 CA2 (-3)

Es válido Siempre da correcto la suma de dos números de diferente signo, haciendo el mismo
calculo en decimal da como resultado -3, siendo mayor que -8.

2.4.2.3. Resta de enteros codificados en complemento a 211


En el caso de la resta en complemento A2, utilizaremos la técnica de
complemento para realizar restas con sumas.
Al realizar sumas podremos utilizar las mismas reglas antecesoras para saber
su validez.
A continuación, se realizarán cuatro ejemplos explicativos;

11
Escrito y realización de gráficos por Walter Salguero - UNPAZ

21
Sea una unidad resta que opera con 8 bits. Se pide:
a) Efectuar las restas indicadas, realizando una resta de magnitudes
justificar la validez del resultado suponiendo que los operandos son
magnitudes
b) Además, hacer la resta de enteros codificados en Comp a 2.
Justificar la validez del resultado suponiendo que los operandos son
números enteros representados en código Complemento a 2.

I) 11010011-10111000
Resta de magnitudes Resta de enteros codificados en Complemento A2
1 10
0 10 0 10 1 El acarreo se descarta

1 1 0 1 0 0 1 1 1 1 0 1
1 0 1 1 1 0 0 0 0
0 0 0 1 1 0 1 1

0 1 0 0 0
No hay desborde
Underflowy /seOverflow.
han restado
dos numeros de igual signo.
VALIDO

II) 10101101-11001011

III) 10101101-01001011

Resta de magnitudes Resta de enteros codificados en Complemento A2

0 10 0 10 1 1 1 1 1
1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1

0 1 0 0 1 0 1 1 1 0 1 1 0 1 0 1
0 1 1 0 0 0 1 0 1 0 1 1 0 0 0 1 0

1 0 1 1 0 1 0 0 Comp 1
La suma de dos numeros negativos tiene que dar
No hay Underflow / Overflow. 1 negativo y siempre tiene que haber desborde ya que
VALIDO el resultado es mayor que 2n.
1 0 1 1 0 1 0 1 Comp 2
Dio positivo la suma de dos numeros negativos y es
Para realizar la Resta de enteros codificados en INVALIDO
Complemento A2 , Primero se pasa el sustraendo a
Complemento A1, y luego a complemento A2
Luego se suma este al minuendo usando las reglas
normales de suma

22
IV) 10101101-00001011

2.5. Códigos binarios para números decimales y Hexadecimales


Para poder compartir información, que está en formato digital, es común utilizar
las representaciones binaria y hexadecimal. Hay otros métodos de representar
información, una de ellas es el código BCD o Decimal codificado en binario y el otro
llamado código BCH o Hexadecimal codificado en binario. Con ayuda de estos códigos
es más fácil ver la relación que hay entre un número decimal (base 10) y el número
correspondiente en binario (base 2) o Hexadecimal (base 16)
Tabla comparativa entre BCD Natural y BCH
Decimal Binario BCD Hexadecimal BCH
0 0 0000 0 0000
1 1 0001 1 0001
2 1 0010 2 0010
3 11 0011 3 0011
4 100 0100 4 0100
5 101 0101 5 0101
6 110 0110 6 0110
7 111 0111 7 0111
8 1000 1000 8 1000
9 1001 1001 9 1001
10 1010 0001 0000 A 1010
11 1011 0001 0001 B 1011
12 1100 0001 0010 C 1100
13 1101 0001 0011 D 1101
14 1110 0001 0100 E 1110
15 1111 0001 0101 F 1111
16 1 0000 0001 0110 10 0001 0000
17 1 0001 0001 0111 11 0001 0001
18 1 0010 0001 1000 12 0001 0010

23
2.6. Representación en coma flotante (norma Número 754 del IEEE)
Como la memoria de las computadoras es limitada, no se puede almacenar
números con precisión infinita, no importa si usas fracciones binarias o decimales:

Por ejemplo, para representar π (pi)

En algún momento se tiene que cortar, la representación de información de


magnitudes más grandes y más pequeñas que las dadas por sistemas de punto fijo,
modificando la manera de interpretación.
La norma Número 754 del IEEE (IEEE, 1985).
Hoy en día, la mayoría de las CPU tienen un coprocesador de coma flotante y
todas ellas se ajustan a la norma de coma flotante del IEEE.

Donde M es mantisa y E exponente de base 2.


• Una mantisa (también llamada coeficiente o significando) que contiene los
dígitos del número. Mantisas negativas representan números negativos.
• Un exponente que indica dónde se coloca el punto decimal (o binario) en
relación al inicio de la mantisa. Exponentes negativos representan números
menores que uno.

Considera dos formatos


básicos, el media, el de simple y el de
doble precisión, que se representan
seguidamente.

24
A partir del año 2003, todas las CPU fueron de 64bit, pero solo algunas PCs se le pude instala un Sistema
Operativo de 64bit ya que solo es recomendables superando los 4GB de Memoria RAM.

2.6.1 ¿Por qué es importante saber Formato punto flotante? - Los Flops

Las FLOPS (operaciones de punto flotante por segundo) son una medida del
rendimiento de una computadora, especialmente en cálculos científicos que requieren
un gran uso de operaciones de coma flotante.
Una computadora de escritorio, que
usa por ejemplo un procesador Pentium 4
o Athlon 64, típicamente opera a más de 3
GHz, provee de un desempeño
computacional del rango de unos cuantos
GFLOPS. La supercomputadora más
rápida del planeta a junio de 2016 es
Sunway TaihuLight con un índice de 93
petaflops.
Como ejemplos gráficos, se puede decir que una tarjeta Nvidia GeForce GTX
1080 tiene un rendimiento de 9 teraflops. Otro ejemplo es el procesador i7-6700K tiene
más o menos 1,2 teraflops.
Kiloflops = Mil flops
Megaflops = Un millón de flops
Gigaflops (GFlops) = Mil millones de flops
Teraflops (TFlops) = Un billón de flops = Mil gigaflops
Petaflops (PFlops) = Mil billones de flops = Mil teraflops = Un millón de gigaflops
Exaflops = Un trillón de flops
Zetaflops = Mil trillones de flops
Yotaflops = Un cuatrillón de flops

25
2.6.2. Procedimiento para representar un número en formato punto flotante precisión
simple de 32 Bits.
1. Calcular el Bit de Signo: Si el número es positivo el bit es “0”. Si el número es
negativo el bit será “1”.
2. Convertir el número decimal a Binario Punto fijo.
3. Calcular la Mantisa, Normalizando el binario obtenido en el paso anterior.
Normalizar significa en este caso que el número binario, deberá siempre tener
como bit más significativo (MSB) el número “1”: esto da como ventaja de que no
es necesario su almacenamiento, ganando con ello la representación de un bit
más. es decir la mantisa realmente tiene 24 bits logrando mayor precisión. A este
bit se le conoce como "Bit fantasma” o "Bit implícito”. Si el MSB es diferente de
cero entonces la mantisa está normalizada.
Normalizar no es más que escribir el número dado en notación científica,
debiendo dejar únicamente un entero.
La parte entera de la mantisa no se almacena, tan solo se almacena la parte
fraccionaria.
4. Calcular el exponente decimal que puede ser positivo o negativo, con exceso
127. Por favor tenga mucho cuidado con el signo del exponente.
Exponente = [(Bits del exponente) + (2n-1 -1)]
5. Pasar a binario el valor absoluto del exponente obtenido en el paso anterior
6. Asigne la mantisa descartando el MSB que es un “1”
7. Complete la mantisa para que la totalidad de bits sea igual a 23.
Ejemplo Represente el binario formateado en 23 bits en sistema hexadecimal.
Represente en punto flotante precisión simple (32 Bits) el número decimal
115,25.
Procedimiento:

1. Bit de signo: es positivo (+) por tanto asignamos “0”

2. Conversión a Binario punto fijo (115,25)10 = (1110011,01)2

3. Normalizar (1110011,01)2. de tal manera que el MSB sea un “1”, así:


1,11001101x26 (para que el MSB fuera “1”, hubo necesidad de desplazar la coma
6 posiciones desde su posición original hasta el punto donde usted la observa,
a la derecha del MSB. Esas posiciones que se desplazó la coma o punto decimal
son las que constituirán luego el exponente.
Tome nota que se reescribió el binario puro en notación científica, garantizando
la presencia de un único numero entero.

4. Exponente: es positivo y con base al paso anterior corresponde a 6 bits, dado


que la coma se desplazó 6 posiciones para la normalización del número.

26
Exponente = [(Bits del exponente) + (2n-1 -1)]
Exponente = [(6) + (28-1 -1)] = [(6 + (27-1)] = (6+127)
Exponente = 133

5. Procedemos ahora a convertir el valor absoluto del exponente decimal a


binario, así:
|133|10 = (10000101)2
6. Del número normalizado obtenido en el paso 3: descartando la parte entera,
tomamos la parte decimal “1,11001101” como mantisa:
Mantisas = 11001101

7. Se completa la mantisa al número de bits que la norma establece. Agregamos


en este caso 15 ceros:
11001101000000000000000

Finalmente, la representación de (115,25)10 en punto flotante, precisión simple


de 32 bits, formato binario queda de la siguiente manera.

27
2.6.2.1. Como pasar un numero de formato simple en Presicion Simple a decimal

28
29
Bibliografía:

• SINDERMAN, Jorge, TÉCNICAS DIGITALES, DISPOSITIVOS,


CIRCUITOS, DISEÑO Y APLICACIONES, 2da. Edición, Nueva Librería,
Marzo del 2007, ISBN 978 -987-1104-51-2.

• http://www.unsj-cuim.edu.ar/portalzonda/COMPUTACION/

• Salguero Walter A, UNPAZ, 2020

30

You might also like