Representación interna de datos en sistemas binarios
1. JESÚS MIGUEL PÉREZ FERNÁNDEZ
EDUARDO MORET MORALES
Representación
Interna
de la Información
2. Introducción
• El hombre en su vida diaria, se comunica,
almacena información y la administra; desde el
punto de vista numérico con el sistema decimal y
con el punto de vista alfabético con el idioma
• Dado que el ordenador lo hace desde el sistema
binario estamos obligados a transformar todos los
datos a una representación binaria para que pueda
procesarlos.
1.1
3. Tipos de datos en lenguajes de
alto nivelEntero
Representa un subconjunto finito de números enteros
Carácter
Puede englobar, letras, números o signos
Lógico (booleanos)
Representación de valores de lógica binaria (true y false)
Puntero
Su valor hace referencia a una dirección de memoria
Cadenas(string)
Sucesión de caracteres con longitud finita
1.2
4. Representación de
booleanos
Es un tipo de datos que representa valores de
lógica binaria
Solo representa verdadero (true) o falso (false)
Operadores lógicos
AND Las dos condiciones son verdaderas al mismo tiempo.
OR Al menos una de las dos condiciones es verdadera.
NOT La condición del primero es verdadera, pero no la del segundo
XOR Una de las condiciones es verdadera, pero no ambas a la vez.
1.3
5. Representación de
caracteres
La codificación de caracteres es el método que permite
convertir un carácter de un lenguaje natural en un símbolo de
otro sistema de representación, como un número o una
secuencia de pulsos eléctricos.
Alfanuméricos
* ASCII (American Standard Code for Information Exchange)
* UNICODE
* EBCDIC (Extended Binary Coded Decimal Interchange
Code)
1.3
8. COMPLEMENTO A 1
El complemento a uno nos permite la
interpretación binaria de números negativos.
Se obtiene cambiando cada uno de los digitos
del numero binario por su complementario
(cambiando los ceros por unos y viceversa).
Si el bit mas significativo es 0 se tratara de un
numero positivo, si por el contrario es un 1 el
numero representado será negativo.
Grupo 5 SIMR
9. COMPLEMENTO A 1
Ejemplo de conversión decimal a C1:
• Tomamos el numero entero -12.
• Tomamos el valor con signo positivo del numero
entero y lo convertimos a binario añadiendo un
cero a la izquierda: +1210 = 011002
• Realizamos el complemento a uno: C-
1(01100) = 10011, 10011c1 = -12
Grupo 5 SIMR
10. COMPLEMENTO A 1
Ejemplo de conversión C1 a decimal:
• Tomamos el valor 10011c1
• Si se tratara de un numero positivo haríamos una conversión de
binario a decimal normal pero sabemos que es un numero negativo
por que MSB = 1.
• Hacemos el complemento a uno de 10011c1 para pasarlo a positivo,
C1(10011) = 01100.
• Convertimos el numero a decimal 01100 = 1210 y le añadimos el signo
que le hemos quitado en la anterior operación con lo que nos queda
10011c1 = -12.
Grupo 5 SIMR
12. COMPLEMENTO A DOS
En el complemento a dos, los números negativos
se representan mediante el patrón de bits que es
un bit mayor (sin signo) que el complemento a
uno del valor positivo.
Para negar un número (negativo o positivo)
invertimos todos los bits y añadimos un 1 al
resultado.
Grupo 5 SIMR
13. COMPLEMENTO A DOS
Ejemplo conversión decimal a C2:
• Si el numero es positivo lo dejamos tal cual
añadiendole un cero a la izquiera.
• Tomamos el numero -2510
• Le quitamos el signo y lo pasamos a binario:
2510 = 011001.
• Realizamos el C-1(011001) = 100110 y le
sumamos 1: 100110 + 1 = 100111c2
Grupo 5 SIMR
14. COMPLEMENTO A DOS
Ejemplo conversión decimal a C2 mas sencilla
para los humanos:
• Tomamos el numero -2510
• Le quitamos el signo y lo pasamos a binario:
2510 = 011001.
• De izquierda a derecha hacemos C-1 a partir
del primer 1 que nos encontramos: 011001 =
100111c2
Grupo 5 SIMR
16. MS(MODULO Y SIGNO)
En este sistema el bit que esta mas a la izquierda
representa el signo, el resto de bits representan
el numero por lo que siempre necesitaremos un
bit mas para representar un numero.
Con este sistema hay una forma positiva y otra
negativa de representar el valor 0.
Grupo 5 SIMR
17. MS(MODULO Y SIGNO)
Ejemplo MS con el numero 34:
• Pasamos a binario: 1000102
• Si queremos representar un positivo
añadiremos un 0 a la izquierda, si queremos
un negativo añadiremos un 1.
• Positivo MS: 0100010MS
• Negativo MS: 1100010MS
Grupo 5 SIMR
19. EXCESO Z
Este sistema no utiliza ningún bit para indicar el
signo.
El valor se corresponde con el numero
representado mas el exceso, para n bits viene
dado por 2n
-1.
Grupo 5 SIMR
20. EXCESO Z
Ejempo para el numrto 22 y -22 siendo n=8:
• El exceso es de 28
-1 = 27
= 128.
• Para 22, 22+128=150 -> 10010110ez = 22
• Para -22, -22+128=106 -> 01101010ez = -22
Grupo 5 SIMR
23. representacion de reales
Para representar un numero real en binario en precisión
simple se usan 32 bits, 1 bit para el signo 23 bits para la
mantisa y 8 bits para el exponente.
El exponente se representa en exceso a 2n-1-1(127), y la
mantisa se se normaliza colocando la coma decimal a la
derecha del bit más significativo.
GRUPO 5 SIMR
24. Valores limite
Mayor valor representable:
0 11111111 11111111111111111111111
Menor valor represetable:
1 11111111 11111111111111111111111
Valor mas proximo a 0 positivo:
0 00000000 00000000000000000000001
Valor mas proximo a 0 negativo:
1 00000000 00000000000000000000001
GRUPO 5 SIMR
25. binario a decimal
Ejemplo numero binario en coma flotante:
0 10000111 11010101010110101100101
Sabemos que el numero es positivo por el primer bit.
Exponente = 10000111 = 135 - 127 = 8.
Mantisa = 11010101010110101100101. Le añadimos bit
implícito: 1’ 11010101010110101100101 y corremos 8
veces la coma 111010101’010110101100101.
Pasamos a decimal:Parte fraccionaria: 0,11621.
0 10000111 11010101010110101100101 =
469,11621
GRUPO 5 SIMR
26. Conversiones: Coma
FlotanteValor 125’815 en notación coma flotante IEEE-754 (32 bits)
125’815 1111101’1101000010100011111Paso a
binario
Traslado de
la coma al
bit más
significativo
1111101’ 110101101011010 1’1111011101000010100011111 x 2^6
Conversión
del
exponente
a binario
(2^n-1-1): 6 + (2^8-1 - 1)= 6 + (2^7 - 1) = 6 + (128 - 1)10 = 133 = 10000101
0 10000101 11110111010000101000111Resultado 5.1
27. Conversiones: Coma
Flotante1 10001110 01110001110000000000000 a valor decimal
Signo: 1
-47.328Resultado
Exponente: 10001110 (142-127 = 15)
Mantisa: 1’01110001110000000000000 (añadido bit implícito)
Desplazamiento de la coma y pasarlo de binario a decimal:
1011100011100000’00000000
5.2