Professional Documents
Culture Documents
2da Parte - Codigo Binario
2da Parte - Codigo Binario
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
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
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
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:
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.
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
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”.
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)
2n
n = número de bits.
12
A continuación, se muestran los ejemplos según como fue explicado en clase virtual;
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 presencia del préstamo final, simbolizado por la flecha entrante al bit más
significativo, indica que el resultado es invalido.
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.
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:
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
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
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.
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;
2n-1
n = número de bits.
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.
• “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.
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.
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.
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
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
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:
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:
26
Exponente = [(Bits del exponente) + (2n-1 -1)]
Exponente = [(6) + (28-1 -1)] = [(6 + (27-1)] = (6+127)
Exponente = 133
27
2.6.2.1. Como pasar un numero de formato simple en Presicion Simple a decimal
28
29
Bibliografía:
• http://www.unsj-cuim.edu.ar/portalzonda/COMPUTACION/
30