Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Luis Rincón
Índice
1. Introducción.
2. Sistemas de representación numérica.
3. Aritmética binaria.
4. Sistemas de representación en coma fija.
5. Sistemas de representación en coma flotante.
6. Representación de caracteres alfanuméricos.
7. Representación de datos numéricos: texto frente a binario.
Bibliografía
[PAT] D.A. PATTERSON, J.L. HENNESSY. Computer Organization and Design, 5th
ed. Morgan Kaufmann, 2014 (o la traducción española más reciente: Estructura y
Diseño de Computadores, 4ª ed. Reverté, 2011).
1. Introducción.
2. Sistemas de representación numérica.
3. Aritmética binaria.
4. Sistemas de representación en coma fija.
5. Sistemas de representación en coma flotante.
6. Representación de caracteres alfanuméricos.
7. Representación de datos numéricos: texto frente a binario.
Introducción
Codificación de la información digital
1. Introducción.
2. Sistemas de representación numérica.
3. Aritmética binaria.
4. Sistemas de representación en coma fija.
5. Sistemas de representación en coma flotante.
6. Representación de caracteres alfanuméricos.
7. Representación de datos numéricos: texto frente a binario.
Sistemas de representación numérica
Bases de representación
p -1
N= ∑ i
a
i=−q
⋅ b i
Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Binario 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000
Octal 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20
Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F 10
Índice
1. Introducción.
2. Sistemas de representación numérica.
3. Aritmética binaria.
4. Sistemas de representación en coma fija.
5. Sistemas de representación en coma flotante.
6. Representación de caracteres alfanuméricos.
7. Representación de datos numéricos: texto frente a binario.
Aritmética binaria
Suma y resta
PRODUCTO A 12 1 1 0 0 multiplicando
BINARIO 0 1
(×) × 6 × 1 1 0 multiplicador
0 0 0 72 0 0 0 0
B
1 0 1 1 1 0 0 productos
parciales
1 1 0 0
1 0 0 1 0 0 0 resultado
M 64 + 8 = 72
× m
R M3 M2 M1 M0 multiplicando
× m2 m1 m0 multiplicador
M3·m0 M2 ·m0 M1 ·m0 M0 ·m0
productos
M3·m1 M2 ·m1 M1 ·m1 M0 ·m1 parciales
M3·m2 M2 ·m2 M1 ·m2 M0 ·m2
R6 R5 R4 R3 R2 R1 R0 resultado
Aritmética binaria
División
0 14 - 1 0 0 0 1 1 1 0 cociente
0 1 1 0 0
- 1 0 0 0
restos parciales 0 1 0 0 0
- 1 0 0 0
0 0 0 0 0
- 0 0 0 0
0 0 0 0 resto final
Índice
1. Introducción.
2. Sistemas de representación numérica.
3. Aritmética binaria.
4. Sistemas de representación en coma fija.
5. Sistemas de representación en coma flotante.
6. Representación de caracteres alfanuméricos.
7. Representación de datos numéricos: texto frente a binario.
Sistemas de representación en coma fija
Binario puro (repaso)
1. Introducción.
2. Sistemas de representación numérica.
3. Aritmética binaria.
4. Sistemas de representación en coma fija.
5. Sistemas de representación en coma flotante.
6. Representación de caracteres alfanuméricos.
7. Representación de datos numéricos: texto frente a binario.
Sistemas de representación en coma flotante
Notación científica y normalización
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
S EXPONENTE MANTISA
0 si exp = m = 0
N=
+∞ si exp = 255, m = 0, s = 0
–∞ si exp = 255, m = 0, s = 1
s = signo de la mantisa
m = módulo de la mantisa almacenada (sin bit implícito)
exp = exponente almacenado (sin descontar exceso)
Sistemas de representación en coma flotante
IEEE 754 precisión doble (64 bits)
63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32
S EXPONENTE MANTISA
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MANTISA (CONTINUACIÓN)
0 si exp = m = 0
N=
+∞ si exp = 2047, m = 0, s = 0
–∞ si exp = 2047, m = 0, s = 1
N = C0A0000016,IEEE754,s =
= 1100 0000 1010 0000 0000 0000 0000 00002,IEEE754,s
s exp m
N = 4237000016,IEEE754,s =
= 0100 0010 0011 0111 0000 0000 0000 00002,IEEE754,s
s exp m
N = C425A00016,IEEE754,s =
= 1100 0100 0010 0101 1010 0000 0000 00002,IEEE754,s
s exp m
N = 004B000016,IEEE754,s =
= 0000 0000 0100 1011 0000 0000 0000 00002,IEEE754,s
s exp m
N = 8000000016,IEEE754,s =
= 1000 0000 0000 0000 0000 0000 0000 00002,IEEE754,s
s exp m
N = 7F80000016,IEEE754,s =
= 0111 1111 1000 0000 0000 0000 0000 00002,IEEE754,s
s exp m
N = FF80040016,IEEE754,s =
= 1111 1111 1000 0000 0100 0000 0000 00002,IEEE754,s
s exp m
N = –0,7510
1. Expresarlo en binario: –0,7510 = –0,112
2. Normalizar: –0,112 = –1,12×2–1
3. Cálculo del exponente en exceso:
exp = –110 + 12710 = 12610,exc.127 = 011111102,exc.127
4. Cálculo de mantisa:
m = 1,10000000000000000000000 (el bit implícito no se almacena)
5. Bit de signo: s = 1 (nº negativo)
6. Representación en precisión simple:
1 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
S EXPONENTE MANTISA
R5 R2
R4 R6 R1 R3
-∞ +∞
R5 R2
R4 R6 R1 R3
-∞ +∞
R5 R2
R4 R6 R1 R3
-∞ +∞
Xi Xi+1
XM
R5 R2
R4 R6 R1 R3
-∞ +∞
Bits sobrantes 1X...X Bits sobrantes 0X...X Bits sobrantes 0X...X Bits sobrantes 1X...X
con algún X<>1 Se aproxima por Xj+1 Se aproxima por Xi con algún X<>1
Se aproxima por Xj Se aproxima por Xi+1
N = –23,110
1. Expresarlo en binario: –23,110 ≈ –10111,00011001100110011001100112
2.a. Normalizar:
-10111,00011001100110011001100112 ≈ -1,01110001100110011001100110011×24
2.b. Redondear al valor más próximo:
-1,01110001100110011001100110011×24 ≈ -1,01110001100110011001101×24
3. Cálculo del exponente en exceso:
exp = 410 + 12710 = 13110,exc.127 = 100000112,exc.127
4. Cálculo de mantisa:
m = 1,01110001100110011001101 (el bit implícito no se almacena)
5. Bit de signo: s = 1 (nº negativo)
6. Representación en precisión simple:
1 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1
S EXPONENTE MANTISA
N = 2,567510 x 1015
1. Expresarlo en binario: 2,567510 x 1015 ≈ 1,23E415A16 x 251 =
= 1,00100011111001000001010110102 x 251
2.a. Normalizar: 1,00100011111001000001010110102 x 251 está normalizado.
2.b. Redondear al valor más próximo:
1,00100011111001000001010110102 x 251 ≈ 1,001000111110010000010112 x 251
3. Cálculo del exponente en exceso:
exp = 5110 + 12710 = 17810,exc.127 = 101100102,exc.127
4. Cálculo de mantisa:
m = 1,00100011111001000001011 (el bit implícito no se almacena)
5. Bit de signo: s = 0 (nº positivo)
6. Representación en precisión simple:
0 1 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 1 1 1 0 0 1 0 0 0 0 0 1 0 1 1
S EXPONENTE MANTISA
N = -6,8876610 x 10-39
1. Expresarlo en binario: -6,8876610 x 10-39 ≈ -1,2BFFF9A16 x 2-127 =
= -1,00101011111111111111100110102 x 2-127
2.a. Normalizar: -1,00101011111111111111100110102 x 2-127 está normalizado.
2.b. Redondear al valor más próximo:
-1,00101011111111111111100110102 x 2-127 ≈ -1,001010111111111111111012 x 2-127
El exponente queda fuera de rango, por tanto estamos ante un caso especial con
exponente igual a -126 y mantisa desnormalizada:
-0,100101011111111111111100110102x2-126 ≈ -0,100101011111111111111102 x 2-126
3. Exponente: 00000000
4. Cálculo de mantisa:
m = 0,10010101111111111111110 (no hay bit implícito)
5. Bit de signo: s = 1 (nº negativo)
6. Representación en precisión simple:
1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
S EXPONENTE MANTISA
N = 4,510 x 10100
1. Expresarlo en binario: 4,510 x 10100 ≈ 1,492E2CA16 x 2334 =
= 1,010010010010111000101100102 x 2334
No
Infinito positivo
¿Exponente menor Sí o negativo
que el mínimo?
No
Representar número en
Redondear la forma desnormalizada
mantisa resultante
No ¿Todavía está
normalizada?
Sí
Fin
Sistemas de representación en coma flotante
Ejemplo de suma de dos cantidades dadas en IEEE 754 precisión simple
Inicio
A m a ⋅ 2expa
=
⇒ R = A ⋅ B = ( m ⋅ m ) ⋅ 2 expa + exp B
=
B m b ⋅ 2expb
p a b
Sumar/restar los
exponentes
A m a ⋅ 2expa
= A m a expa −expB
Multiplicar/dividir las
exp b
⇒ R = = ⋅2
=
B mb ⋅ 2
mantisas d
B mb
Normalizar la mantisa
resultante • Ejemplo en notación científica: A · B,
con 3 cifras fraccionarias en la mantisa
A = 4,538 · 104 ---- B = 6,471 · 102
¿Exponente mayor Sí
que el máximo?
1. Sumar exponentes
No
Infinito positivo Exp’R = 4+2 = 6
¿Exponente menor Sí o negativo 2. Multiplicar mantisas
que el mínimo?
M’R = MA·MB = 4,538 · 6,471 =
No
Representar número en
= 29,365398
Redondear la forma desnormalizada 3. Normalizar mantisa resultante
mantisa resultante
MR = 2,9365398
¿Todavía está
ExpR = 6+1 = 7
No
normalizada? 4. Redondear mantisa del resultado
Sí MR = 2,9365398 ≈ 2,937
5. Resultado
Fin A·B ≈ 2,937 · 107
Índice
1. Introducción.
2. Sistemas de representación numérica.
3. Aritmética binaria.
4. Sistemas de representación en coma fija.
5. Sistemas de representación en coma flotante.
6. Representación de caracteres alfanuméricos.
7. Representación de datos numéricos: texto frente a binario.
Representación de caracteres alfanuméricos
Sistemas de representación alfanumérica
“1058”
Caracteres ‘1’ ‘0’ ‘5’ ‘8’ ‘\0’
Hexadecimal 3116 3016 3516 3816 0016
Binario 00110001 00110000 00110101 00111000 00000000
Representación de caracteres alfanuméricos
Ficheros de texto (I)
1. Introducción.
2. Sistemas de representación numérica.
3. Aritmética binaria.
4. Sistemas de representación en coma fija.
5. Sistemas de representación en coma flotante.
6. Representación de caracteres alfanuméricos.
7. Representación de datos numéricos: texto frente a binario.
Datos numéricos: texto frente a binario
Representación de datos numéricos en modo texto
Dato Representación
ISO 8859-1: 31 32 39 30 38 (hex.)
00110001 00110010 00111001 00110000 00111000
12908
Complemento a 2: 0000326C (hex.)
00000000000000000011001001101100
Dato Representación
ISO 8859-1: 2D 32 34 37 36 31 (hex.)
00101101 00110010 00110100 00110111 00110110 00110001
-24761
Complemento a 2: FFFF9F47 (hex.)
11111111111111111001111101000111
Dato Representación
ISO 8859-1: 39 2E 33 35 65 2B 32 (hex.)
00111001 00101110 00110011 00110101 01100101 00101011 00110010
9.35e+2
IEEE 754 de precisión simple: 4469C000 (hex.)
01000100011010011100000000000000