Download Informática y programación

Document related concepts

Sistema octal wikipedia , lookup

Código binario wikipedia , lookup

Sistema binario wikipedia , lookup

Nibble wikipedia , lookup

Sistema hexadecimal wikipedia , lookup

Transcript
Informática y Programación
Escuela de Ingenierías Industriales y Civiles
Grado en Ingeniería Química
Curso 2010/2011
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Módulo 1.
Fundamentos de
Computadores
1
•
•
•
•
Tema 1. Introducción y conceptos básicos
Tema 2. Representación de la información
Tema 3. Hardware
Tema 4. Software. Paquetes software aplicados a
ingeniería
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
CONTENIDO
2
Recordemos nuevamente la definición de ordenador:
“Computadora, computador u ordenador es una máquina capaz de aceptar unos
datos de entrada, efectuar con ellos operaciones lógicas y aritméticas, y proporcionar
la información resultante a través de un medio de salida; todo ello sin intervención de
un operador humano y bajo el control de un programa de instrucciones previamente
almacenado en la propia computadora.”
Recordemos también el concepto de dato
Los datos son conjuntos de símbolos utilizados para expresar o representar un valor
numérico, un hecho, un objeto o una idea; en la forma adecuada para ser objeto de
tratamiento.
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Introducción
3
Los ordenadores aparecieron en primer lugar como máquinas para realizar
cálculos (del latín calculus, que significa contar con piedras), para dicha tarea los humanos
empleamos el sistema decimal que hace uso de diez símbolos.
¿Por qué el sistema decimal?
Contando con los diez dedos:
• La tecnología electrónica que utilizan los ordenadores sólo permite
distinguir dos estados diferentes: encendido y apagado.
• El sistema de numeración de dos estados o valores se denomina
binario, y los dos dígitos que emplea son el 0 y el 1. Siendo el bit
(binari digit) la unidad de información más elemental.
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Introducción
4
La información en los ordenadores se almacena y procesa haciendo uso de la
codificación basada en el sistema de numeración binario.
Tanto en la entrada como en la salida de datos, se efectúan las
transformaciones de código oportunas, codificación y decodificación
respectivamente, para que la información sea comprendida por el usuario.
Codificación: transformación de elementos de un conjunto en elementos de
otro conjunto siguiendo un método determinado, de tal forma que
posteriormente se pueda efectuar el proceso inverso de decodificación
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Introducción
5
Los ordenadores realizan las operaciones con información representada en
forma digital, es decir que tienen valores discretos. Durante muchos años, las
aplicaciones de la electrónica digital se limitaba a los sistemas informáticos. Hoy
en día, la tecnología digital tiene aplicación en prácticamente todas las áreas.
La información antes de ser procesada por un ordenador debe codificarse en
términos comprensibles para la máquina, es decir, debe convertirse al formato
binario, para obtener su código (un grupo de bits) correspondiente.
Los códigos permiten representar:
- números
- símbolos
- caracteres alfanuméricos
- instrucciones
- cualquier otro tipo de información
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Introducción
6
Por homogeneidad se utiliza un número fijo de bits para representar.
Un byte es el número de bits necesarios para almacenar un carácter, y en
general se asume que son 8 bits.
La cantidad de memoria de un ordenador o de un dispositivo de
almacenamiento se describe empleando múltiplos de 8.
•
•
•
•
•
•
1 Kilobyte (KB) = 210 Bytes = 1024 Bytes ≈ 103 bytes
1 Megabyte (MB) = 220 Bytes = 1024 Kilobytes ≈ 106 bytes
1 Gigabyte (GB) = 230 Bytes = 1024 Megabytes ≈ 109 bytes
1 Terabyte (TB) = 240 Bytes = 1024 Gigabytes ≈ 1012 bytes
1 Petabyte (PB) = 250 Bytes = 1024 Terabytes ≈ 1015 bytes
Exabyte, Zettabyte, Yottabyte
En el sistema métrico decimal un Kilómetro se corresponde con 1000 metros, se
utiliza la potencia de 2 más próxima a esa cantidad.
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Introducción
7
Todos estamos familiarizados con el sistema de numeración decimal:
•
•
Lo utilizamos cotidianamente.
Es un sistema de representación posicional, en concreto un sistema de
numeración de base 10
Un sistema de numeración en base b se caracteriza por:
•
•
•
Disponer de un alfabeto con b símbolos o cifras. En el sistema de base 10
disponemos de 10 símbolos o cifras: S10={0,1,2,3,4,5,6,7,8,9}
Todo número se expresa empleando un conjunto de dichas cifras donde el
valor de cada cifra depende:
•
De sí misma, y
•
De la posición que ocupa
Por ejemplo en el sistema de base 10 no representan el mismo número 986
que 869 aún cuando los símbolos utilizados son los mismos.
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración
8
•
Ocurre en el caso general que la interpretación de una cifra, c, es
igual a una potencia de la base, b, en función de la posición. Para 986
y 869 se observa que no son iguales
986 = 9 * 102 + 8 * 101 + 6 * 100
869 = 8 * 102 + 6 * 101 + 9 * 100
•
La regla se extiende para números no enteros
986,21 = 9 * 102 + 8 * 101 + 6 * 100 + 2 * 10-1 + 1 * 10-2
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración
9
Un ordenador utiliza en sistema binario natural, binario o de base 2, que consta
de dos símbolos S2={0,1}
Ejemplo: Para codificar 4 símbolos, necesitamos 2 bits.
Símbolo a codificar
Código binario
0
1
2
3
00
01
10
11
¿Cuántos bits son necesarios para codificar m símbolos?
n bits, de modo que 2n ≥m; n>=log2 número de caracteres
para 4 símbolos necesitamos 22 2 bits
para 256 símbolos necesitamos 28 8 bits
para 257 símbolos necesitamos 29 9 bits
para 512 símbolos necesitamos 210 10 bits
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: binario
10
La conversión de binario a decimal es sencilla siguiendo la regla vista
anteriormente para el sistema decimal, es decir, multiplicamos la cifra por la
potencia de la base en función de la posición de dicha cifra
01101)2 = 1 * 23 + 1 * 22 + 1 * 20 = 13)10
010101,011)2 = 1 * 24 + 1 * 22 + 1 * 20 + 1 * 2-2 + 1 * 2-3 =
21 + 1/22 + 1/23 = 21 + 0,25 + 0,125 = 21,375)10
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: binario
11
Para la conversión de decimal a binario debemos tratar por separado la parte
entera (método de las divisiones) y la parte fraccionaria (método de las
multiplicaciones)
El equivalente binario a la parte entera se obtiene dividiendo por 2 y
tomando los sucesivos restos y el último cociente. El último cociente se
corresponde al bit más significativo (MSB), y el primer resto al menos
significativo (LSB)
•
13
2
1
6
2
0
3
2
1
1
13)10 = 1101)2
116
2
0
58
2
0
29
2
1
14
2
0
7
2
1
3
2
1
1
116)10 = 1110100)2
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: binario
12
•
La parte fraccionaria del número binario se obtiene multiplicando por dos
sucesivamente, si no resulta nulo, la parte fraccionaria del número decimal.
El número binario se forma con las partes enteras que se van obteniendo.
Puede dar lugar a un número largo o incluso infinito de cifras binarias, por lo
que si el número de bits para la parte fraccionaria estuviera limitado podría
existir error de truncamiento.
0,1875)10
0,1875
x2
0,375
x2
0,75
x2
0,5
x2
0,3750
0,750
1,50
1,0
0,1875)10 = 0,0011)2
De esta forma para un número con parte entera (supongamos 116 de la transparencia
anterior) y fraccionaria
116,1875)10 = 1110100,0011)2
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: binario
13
Ejercicios
•
•
Binario a decimal
•
11001
•
01110
•
100111
•
0,10010
•
101101,11
•
110101001
•
10101,001
Decimal a binario
•
869
•
34,1875
•
7463
•
142,34
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: binario
14
El ordenador hace además uso de
otros dos códigos, empleados como
intermedios
•
Hexadecimal, código de base 16
S16={0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}
•
Octal, código de base 8
S8={0,1,2,3,4,5,6,7}
Decimal
Binario
Hexadecimal
Octal
0
0
0
0
1
1
1
1
2
10
2
2
3
11
3
3
4
100
4
4
5
101
5
5
6
110
6
6
7
111
7
7
8
1000
8
10
9
1001
9
11
10
1010
A
12
11
1011
B
13
12
1100
C
14
13
1101
D
15
14
1110
E
16
15
1111
F
17
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: octal, hexadecimal
15
Para la conversión de octal (Base octal S8={0,1,2,3,4,5,6,7}) a decimal puede
emplearse una técnica análoga a los números en base diez (métodos divisiones
y multiplicaciones).
• Conversión de octal a decimal
Número: 432)8
Valor: 4 * 82 + 3 * 81 + 2 * 80 = 282)10
• Conversión de decimal a octal, métodos de las divisiones, (y nos quedamos con los
restos) y multiplicaciones (nos quedamos con la parte entera) con divisor y
multiplicador 8
Número: 234,1285)10
Valor: 352,10162540…)8
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: octal
16
Sin embargo es más sencillo aplicar un esquema
aprovechando que la base es potencia de 2, b=8=23
•
Conversión de binario a octal: Cada
corresponde con un grupo de tres cifras
inversa cada grupo de tres cifras binarias
con un cifra octal. Podemos agrupar
transformar mediante tabla de conversión.
cifra octal se
binarias, y a la
se corresponde
de 3 en 3 y
10100101,1101)2
010 100 101 , 110 100)2
2 4 5 , 6 4)8
•
Conversión de octal a binario, utilizar tabla de conversión
para cada cifra de forma similar
Número: 3245,765)8
Valor: 011010100101,111110101)2
Binario
Octal
000
0
001
1
010
2
011
3
100
4
101
5
110
6
111
7
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: octal
17
Para las conversiones entre hexadecimal (Base
hexadecimal S16={0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}):
• Conversión de hexadecimal a decimal, sumar los pesos
(2n) de las posiciones en las que hay un 1.
Número: 857A)16
Valor:
8*163 +
5*162 +
7*161 +
A*160
= 34170)10
• Conversión de decimal a hexadecimal, métodos de las
divisiones y multiplicaciones con divisor y multiplicador 16
Número: 234)10
Valor: EA)16
Decimal
Hexadecimal
0
0
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
A
11
B
12
C
13
D
14
E
15
F
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: hexadecimal
18
Para las conversiones del sistema hexadecimal
(S16={0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}) a binario
•
•
Binario
Hexadecimal
0000
0
0001
1
0010
2
0011
3
0100
4
0101
5
0110
6
0111
7
1000
8
1001
9
1010
A
10100101,1101)2
1011
B
1100
C
1010 0101 , 1101)2
1101
D
1110
E
A 5 , D)16
1111
F
De nuevo es más sencillo aplicar un esquema
aprovechando que la base es potencia de 2,
b=16=24
Cada cifra hexadecimal se corresponde con un
grupo de cuatro cifras binarias, y a la inversa
cada grupo de cuatro cifras binarias se
corresponde con un cifra hexadecimal.
Podemos emplear la tabla en ambos sentidos.
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: hexadecimal
19
Observando la tabla, puedes buscar reglas de
formación que te eviten depender de memorizar:
Decimal
Octal
0
000
1
001
2
010
•La inmediatamente a su izquierda, la segunda,
alterna de dos en dos.
3
011
4
100
•La tercera de cuatro en cuatro (22)
5
101
6
110
7
111
• La columna más a la derecha alterna ceros y
unos.
•La cuarta (para el código hexadecimal) de ocho
en ocho (23)
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: octal, hexadecimal
20
Para convertir entre octal y hexadecimal:
•
Conversión de hexadecimal a octal, se convierte cada cifra del número a binario
y luego se transforma a octal agrupando las cifras de 3 en 3 mediante tabla de
conversión
Número: AF,16C16)  en binario 1010 1111,0001 0110 1100)2
Agrupamos de 3 en 3: 010 101 111,000 101 101 100
Valor: 257,0554)8
•
Conversión de octal a hexadecimal, se utiliza también la transformación
intermedia en base 2.
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: octal, hexadecimal
Número: 257,0554)8  en binario 010 101 111,000 101 101 100)2
Agrupamos de 4 en 4: 1010 1111,0001 0110 1100
Valor: AF,16C)16
21
Ejercicios
Octal a binario
• 2067
• 14267
•
Hexadecimal a binario
• 2D5E
•
Octal a decimal
• 3261
•
Hexadecimal a decimal
• A912,C
•
Binario a octal y hexadecimal
• 11001
• 110101001
• Convierte a las otras bases
• 1010110101)2 y 10101,11001)2
• 376,765)10
• 5AC3)16 y F743)16
• 0523)8 y 6455)8
•
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: octal, hexadecimal
22
Operaciones aritméticas en código binario. Las tablas de sumar y restar son:
a
b
a+b
0
0
0
0
1
1
1
0
1
1
1
0 y me llevo 1
a
b
a-b
0
0
0
0
1
1 y debo 1
1
0
1
1
1
0
110101
+101001
1011110
110101
-101001
001100
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: aritmética
23
Cuando la suma de dos dígitos excede los símbolos numéricos disponibles en la
notación, se lleva un 1 (acarreo) a la posición de dígito inmediatamente
superior.
1
1
1 1
1010
+101
101010
+001001
00111001 = 57
+00100011 = 53
1111
110011
01011100 = 92
11 1
11 1
1111
+111
10111000 = 184)10
+00111011 = 59)10
10110
11110011 = 243)10
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: aritmética
24
Para realizar la resta se puede utilizar la tabla de la suma contando hacia atrás
(descontando). Cuando la resta de dos dígitos excede (por debajo) los símbolos
numéricos disponibles en la notación, se realiza un pedido o deuda de 1 a la
posición de dígito inmediatamente superior.
1
110101
-101001
001100
1 11
1100011
-101001
0111010
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: aritmética
25
Otra técnica eficiente para realizar sustracciones consiste en sumar al minuendo
el complemento a 1 del sustraendo.
El complemento a 1 de un número N, es el número que resulta de restar cada
una de las cifras de N a la base menos uno del sistema de numeración que se
esté utilizando. Es equivalente a intercambiar unos y ceros, así el complemento
a 1 de 1011 es 0100.
Podemos restar dos números sumando al minuendo el complemento a 1 del
sustraendo.
Si hubiera una cifra que se arrastra del resultado se descarta y se sumaría al
resultado así obtenido.
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: aritmética
26
Veamos un ejemplo:
1. Si la cantidad de dígitos del sustraendo es menor
que la del minuendo, se completa el sustraendo
con ceros a la izquierda de la parte entera, y a la
derecha de la parte decimal (encolumnar por la
coma)
2. Se halla el complemento del sustraendo,
restando este valor del máximo valor binario con
la misma longitud del minuendo, cambiar 0 por 1
y 1 por 0.
3. Se suma el minuendo al complemento del
sustraendo
4. Se elimina el 1, acarreo, de la izquierda y se suma
con el dígito más a la derecha del resultado, sin
importar la coma decimal.
100011.101
-10101.000
minuendo
sustraendo
111111.111
-010101.000
101010.111
complemento
100011.101
+101010.111
1)001110.100
001110.100
+
1
001110.101
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: aritmética
27
resultado
• Las comprobaciones pueden realizarse
convirtiendo a decimal las cifras del minuendo
y del sustraendo y realizando la resta.
• Otro modo de controlar el resultado es sumar
el resultado al sustraendo, debiendo obtenerse
el minuendo
100011.101
-10101.000
1110.101
1110.101
+10101.000
100011.101
= 35.625)10
= 21)10
= 14.625)10
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: aritmética
28
Las tablas de multiplicar y dividir en binario
a
b
axb
0
0
0
0
1
0
1
0
0
1
1
1
a
b
a/b
0
0
indeterminado
0
1
0
1
0
infinito
1
1
1
110101
x
10
000000
110101
1101010
110101
- 101
1010,1…
00110
-
101
00110
-
101
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: aritmética
0101
0001 …
29
Operaciones aritméticas en código octal: Tabla de sumar.
+
0
1
2
3
4
5
6
7
0 1
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 10
1
+
1
2
2
3
4
5
6
7
10
11
3
3
4
5
6
7
10
11
12
4
4
5
6
7
10
11
12
13
5
5
6
7
10
11
12
13
14
6
6
7
10
11
12
13
14
15
1
4
7
3
1
5
7
6
2
0
3
0
3
7
7
10
11
12
13
14
15
16
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: aritmética
30
Operaciones aritméticas en código hexadecimal: Tabla de sumar.
+
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0 1
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 A
A B
B C
C D
D E
E F
F 10
2
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
11
3
3
4
5
6
7
8
9
A
B
C
D
E
F
10
11
12
4
4
5
6
7
8
9
A
B
C
D
E
F
10
11
12
13
5
5
6
7
8
9
A
B
C
D
E
F
10
11
12
13
14
6
6
7
8
9
A
B
C
D
E
F
10
11
12
13
14
15
7
7
8
9
A
B
C
D
E
F
10
11
12
13
14
15
16
8
8
9
A
B
C
D
E
F
10
11
12
13
14
15
16
17
9
9
A
B
C
D
E
F
10
11
12
13
14
15
16
17
18
A
A
B
C
D
E
F
10
11
12
13
14
15
16
17
18
19
11
B
B
C
D
E
F
10
11
12
13
14
15
16
17
18
19
1A
C
C
D
E
F
10
11
12
13
14
15
16
17
18
19
1A
1B
D
D
E
F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
E
E
F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
F
F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: aritmética
1 11
6AE
+1FA
9654 = 38484
+4528 = 17704
8F97.F00
+D44C.F9E
8A8
DB7C = 56188
163E4.E9E
31
Suma en código octal y hexadecimal.
Una manera sencilla de realizar la suma en octal y hexadecimal es usando el
método del reloj. Consiste en ordenar todos los símbolos en un círculo, de
menor a mayor como en un reloj. Para realizar la suma se procede de la
siguiente manera:
1. Posicionarse en el lugar correspondiente al primer sumando.
2. Desplazarse en el sentido de las agujas del reloj, avanzando tantas posiciones
como lo indique el segundo sumando.
3. El resultado de la suma será la última posición a la que se llegue.
4. Cuando al sumar se supere el valor del último dígito del sistema de numeración,
se produce un acarreo y debe añadirse una unidad a la posición inmediata
superior.
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: aritmética
32
Suma en código hexadecimal.
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: aritmética
33
La resta en código octal (en hexadecimal es análoga)
podemos aplicar la técnica del complemento
6204,02
- 5173
Minuendo
Sustraendo
1. Si la cantidad de dígitos del sustraendo es menor que la
del minuendo, se completa el sustraendo con ceros a la
izquierda de la parte entera, y a la derecha de la parte
decimal (encolumnar por la coma)
2. Se halla el complemento del sustraendo, restando este
valor del máximo valor octal con la misma longitud del
minuendo
3. Se suma el minuendo al complemento del sustraendo
4. Se elimina el posible acarreo de la izquierda,
sumándose al dígito más a la derecha, sin importar la
coma decimal.
7777,77
- 5173,00
2604,77
Complemento
6204,02
+ 2604,77
11011,01
+
1
1011,02
resultado
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: aritmética
34
La resta hexadecimal sigue las mismas reglas que la resta decimal y binaria, con
la salvedad que un pedido de 1 en la notación hexadecimal representa el
número decimal 16.
Usando el método del reloj se procede de la siguiente manera:
1. Posicionarse en el símbolo correspondiente al minuendo
2. Desplazarse en el sentido contrario a las agujas del reloj la cantidad de veces
indicada por el sustraendo.
3. El resultado de la resta será la última posición a la que se llegue.
4. Cuando al restar se llega a un valor inferior a 0, se realiza un pedido y se debe
restar una unidad a la posición inmediata superior.
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: aritmética
35
Sistemas de numeración: aritmética
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Resta en código hexadecimal.
36
Ejercicios
• Operaciones aritméticas
• 1110101)2 + 1010010)2
• 1110101)2 - 1010010)2
• 1110101)2 * 101)2
• 1110101)2 / 10)2
• 456)8 + 22)8
• 98)16 + 7)16
• 76)8 – 32)8
• 22)10 + 1001)2 + 32)8 + FF)16
• El complemento a 1 del número binario es: 0101 0111 1011. ¿Cuál es el
número expresado en hexadecimal?
• Convierte los números 239)10 y 37)10 a código binario, octal y
hexadecimal. Posteriormente realiza la suma y la resta de los mismos en
código binario.
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Sistemas de numeración: aritmética
37
Conocidos los internos códigos que emplea un ordenador, es interesante
describir el modo en que distintas entidades u objetos se codifican empleando
dichos códigos. Las entidades que consideraremos brevemente serán:
Texto o Alfanuméricos
ASCII
Unicode
Sonidos
Imágenes
Mapa de bits
Vectorial
Valores numéricos
BCD
Coma fija
Decimal desempaquetado
Decimal empaquetado
Binario puro
Signo y módulo
Complemento a uno
Complemento a dos
Coma flotante
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos
38
Los principales caracteres alfanuméricos utilizados son:
•
•
•
•
•
Alfabéticos: A, B, C, D, E,..., X ,Y, Z, a, b, c, d,..., x, y, z
Numéricos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Especiales: ) ( , * / ; : + Ñ ñ = ! ? . " & > # < ] Ç [ SP
De control: Por ejemplo el fin de línea
Gráficos: ♣♦♥♠αβ⌠⌡∑
Los códigos de texto son la traducción de estos caracteres a conjuntos de bits. El
número de bits necesario, n siendo un valor entero, depende del número de
caracteres distintos que se desea se puedan representar.
Con dos bits podemos representar 4 caracteres, con 8 256, etc.
n>=log2 número de caracteres
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos: alfanuméricos
39
El código más frecuente utiliza 7 bits y se conoce como ASCII (AmericanS
tandard Code for Information Interchange).
El código ASCII surgió originalmente como estandarización en 7 bits de varias
codificaciones especiales y luego se extendió a una codificación de 8 bits. Se usa
especialmente para la transmisión de datos y ha sido adoptado actualmente
por la gran mayoría de los fabricantes de teclados. Utiliza únicamente 7 bits
para la representación de los datos y están almacenados justificados por la
derecha dentro de un campo estándar de 8 bits. El octavo bit se utiliza para la
paridad de los anteriores.
Unicode (16 bits): Moderno, desarrollado como estándar. Es una ampliación del
código ASCII de 8 bits para poder codificar distintos juegos de caracteres (latino,
griego, árabe, kanji, cirílico, etc…)
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos: alfanuméricos
40
Existen ampliaciones para incorporar caracteres de distintas lenguas.
Pero no son suficientes para considerar también caracteres no latinos, por ello
ha surgido Unicode que con 16 bits representa 65536 caracteres.
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos: alfanuméricos
41
Valores numéricos reales
• Los valores numéricos se transmiten a través de las unidades E/S como
alfanuméricos.
• La representación alfanumérica no es válida para operar.
• Antes de operar se transforman a su correspondiente valor en base 2
• Hay muchas maneras de representar datos numéricos en forma binaria.
Directamente el número en base 2, denominada representación binaria
directa.
• Otras codificaciones: BCD, coma fija, coma flotante
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos: valores numéricos
42
BCD: Codifica los números decimales dígito a dígito. A
esta codificación, que requiere 4 bits por cada dígito
decimal, se le llama codificación BCD (Binary Coded
Decimal).
Se usa codificación ponderada, en la cual, se le dan a
los bits, de izquierda a derecha, los pesos 8-4-2-1,
respectivamente. Como estos pesos son precisamente
los valores de posición en el sistema binario, un dígito
decimal está codificado como su representación
binaria, según la tabla.
Ejemplo: El número 469)10
0100 0110 1001  BCD
4
6
9
111010101)2  Binaria directa
(3 bits menos)
Binario
BCD
0000
0
0001
1
0010
2
0011
3
0100
4
0101
5
0110
6
0111
7
1000
8
1001
9
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos: valores numéricos
43
Coma Fija: La computadora dispone de un número finito de bits (llamado
palabra) para la representación interna de los datos, lo que hace que los
números reales sufran un determinado truncamiento en su parte decimal. El
tamaño de la palabra depende del ordenador que se utilice y se corresponde
con la cantidad de bits que es capaz de transferir en una operación de E/S.
• La representación en coma fija recibe su nombre de la posición en que se
supone situado el punto decimal, que es una posición fija. Actualmente esta
representación se utiliza sólo para números enteros suponiendo que la
coma decimal fija figura implícitamente a la derecha de los dígitos.
• Existen tres formas de representar números en coma fija.
• Decimal desempaquetado,
• decimal empaquetado, y
• binario puro.
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos: valores numéricos
44
Decimal desempaquetado: Un número se almacena con un byte para cada
cifra. Cada byte lleva en su cuarteto de la izquierda (denominado bits de zona)
cuatro unos (F en hexadecimal) y en el de la derecha (bits de dígitos) la cifra en
BCD. El cuarteto de la izquierda de la última cifra representa el signo,
conteniendo 1100 (C en hexadecimal) para el (+), y 1101 (D en hexadecimal)
para el (-).
Ejemplo: 1992)10 1111 0001 1111 1001 1111 1001 1100 0010
F1
F9
F9
C2
- 1992)10 1111 0001 1111 1001 1111 1001 1101 0010
F1
F9
F9
D2
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos: valores numéricos
45
Decimal empaquetado: En este sistema se representa cada dígito en un
cuarteto (sin bits de zona), salvo el primero por la derecha, que lleva el signo
con los mismos valores que antes, conteniendo 1100 (C en hexadecimal) para el
(+), y 1101 (D en hexadecimal) para el (-).
Ejemplo: 199210) 0000 0001 1001 1001 0010 1100
0 1
-199210)
9 9
2 C
0000 0001 1001 1001 0010 1101
0 1
9 9
2 D
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos: valores numéricos
46
Binario puro: El número se representa en una palabra, utilizando el bit de más a
la izquierda para representar el signo (0 para el + y 1 para el -). Para los números
positivos, el resto de los bits (N-1) representan el módulo del número. El rango
de representación, para N dígitos es de:
• -2N-1 + 1 ≤ X ≤ 2N-1 – 1
• Excepto en el Complemento a dos que es de:
• -2N-1 ≤ X ≤ 2N-1 – 1
• Los números negativos varían en su representación según los 3 métodos
siguientes
•
Módulo y signo (MS)
•
Complemento a uno (C1)
•
Complemento a dos (C2)
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos: valores numéricos
47
Módulo y signo (MS): El resto de los (N-1) bits representan el módulo del
número, tanto de los positivos como de los negativos.
Ejemplo: 10)10 0 0001010
+ módulo
-10)10 1 0001010
- módulo
Complemento a uno (C1): El negativo de un número se obtiene
complementando todos sus dígitos (cambiando ceros por unos y viceversa)
incluido el bit de signo.
Ejemplo: 10)10 0 0001010
+ módulo
-10)10 1 1110101
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos: valores numéricos
- módulo
48
Complemento a dos (C2): El negativo de un número se obtiene en dos pasos:
1. Se complementa el número positivo en todos sus bits incluido el bit de signo
(se realiza el C1 del número)
2. Al resultado obtenido en el paso anterior se le suma 1 (en binario)
despreciando el último acarreo, si existe
Ejemplo: 10)10 0 0001010
+ módulo
-10)10 1 1110101  C1
+
1
1 1110110
Su principal inconveniente es el rango de representación asimétrico.
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos: valores numéricos
49
Coma Flotante: Para representar dentro de los ordenadores números muy
grandes o muy pequeños, se usa la notación científica o exponencial
matemática:
Número = mantisa · Base exponente
En notación científica estándar, los números en base 10 se expresan en la forma
N = ± m ·B± e = ± m · 10± e
Ejemplos: -246,36 =-2,4636 · B+2 = -2,4636 · 102
82000000000 = 8,2 · B+10 = 8,2 · 1010
0,00003 = 3,0 · B-5 = 3 · 10-5
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos: valores numéricos
50
En notación exponencial, un número tiene infinitas representaciones, ya que
siempre es posible correr k lugares la coma a la izquierda (o derecha),
simultáneamente se incrementa (o decrementa) el exponente en un valor k, sin
que cambie el valor del número representado.
13257.3285 = 13257.3285·100 = 1.32573285·104= 0.132573285·105= 132573285·10-4=
13257328500·10-6= …
Se toma como estándar la representación denominada normalizada, que
consiste en que la mantisa no tiene parte entera y el primer dígito a la derecha
del punto decimal es significativo (distinto de cero), salvo en la representación
del número 0.
728.3 = 7283 · 10-1 = 728.3 · 100 = 72.83 · 101 =
7.283 · 102 = 0.7283 · 103  notación normalizada
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos: valores numéricos
51
Existen muchas formas de representación en coma flotante, según la longitud
de la palabra del ordenador, el número de dígitos reservados para la mantisa y
el exponente (MS, C1 ó C2), etc.
La representación en coma flotante la determina el fabricante, siendo la
definición más utilizada la normalización IEEE 754
Esta representación asume la base 2, B=2, siendo necesario almacenar sólo el
signo (1 bit), la mantisa m (nm bits) y el exponente o E (ne bits)
N = ±m · 2E
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos: valores numéricos
52
Estos bits se reparten en los disponibles para representar el número. La
precisión simple (hay doble) asume 32 bits, 1 bit de signo, 8 de exponente
(exponente desplazado 127) y el resto, 23 bits, de mantisa.
Para simple/doble precisión (ordenador con 32/64 bits = 4/8 bytes)
• primeros 23/52 bits  mantisa normalizada
• Bits del 23 al 30/52 al 62  exponente desplazado
• Bit 31/63 para el signo (0 positivo, 1 negativo)
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos: valores numéricos
• Base 2
• El 0 se representa con todos los bits a 0
53
•
•
El bit de signo, s en la figura, es 0 para valores positivos y 1 para los negativos
El exponente, e en la figura, no tiene bit de signo, pero para permitir
exponentes positivos y negativos, se almacena desplazado (p.e. en precisión
simple, donde donde ne=8, se le suma siempre 2ne-1 -1 = 127) de tal forma
que no sea necesario un bit de signo. Para obtener el exponente real, E,
basta con restarle el valor de desplazamiento
e=S+E= 2ne-1 -1 + E => E = e – (2ne-1 -1)
•
El exponente se ajusta de modo que sólo exista una cifra no nula a la
izquierda de la coma, y que sea 1 (para representar el 0 todos los bits de e y
m son 0)
N = 1101.01 = 1.10101·23
•
m ←10101 e ←11
Los números con decimales suelen requerir redondeo al no ser
representables en general con un número finito de bits
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos: valores numéricos
54
Representa 67,25 con la normalización IEEE 754 en precisión simple
Transformemos primero a binario de forma separada la parte real y la fraccionaria
67
2
1
33
2
1
16
2
0
8
2
0
4
2
0
2
2
0
1
67,25)10 = 1000011,01)2
0,25
x2
0, 5
x2
0, 50
1, 0
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos: valores numéricos
55
Representa 67,25 con la normalización IEEE 754 en precisión simple (cont.)
Sabemos que el número binario es 1000011,01)2
Desplazamos la coma hasta tener sólo una cifra a su izquierda
N = 1000011,01 = 1,00001101 ·26
La normalización IEEE 754 con precisión simple utiliza 32 bits, siendo 1
bit de signo, 8 de exponente y 23 de mantisa.
s=0
m = 00001101000000000000000
e = 2ne-1-1+E = 27-1+6 = 133 = 10000101
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos: valores numéricos
56
Ejercicios
• La representación de un número entero en el interior de un computador
en código BCD es 1001 0111. ¿Cuál es su valor decimal?
• Representar los números reales en el formato IEEE 754
• 126,12)10
• 564,17)10
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos: valores numéricos
57
Sonido
•La señal analógica se capta por medio de un micrófono.
•Tras ajustarla a un rango se digitaliza realizando un muestreo a determinada
frecuencia.
•Por ejemplo a 20Hz tomaría muestras o medidas 20 veces por segundo.
•La frecuencia de muestreo es importante de cara a registrar correctamente ondas
sonoras de determinada frecuencia.
•Cada muestra se corresponde a un número de bits, que caracterizan la precisión de
la digitalización, es decir, el rango de valores disponibles para representar el valor
medido en un instante.
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos
58
Imágenes
Hay dos esquemas principales para la representación de imágenes en un
ordenador:
• Mapas de bits: Se considera la imagen dividida en una rejilla rectangular de
celdas que se conocen como píxeles (formatos jpeg, bmp, gif, etc.).
• Vectoriales: se describe como una colección de objetos o primitivas tales como
líneas, polígonos y textos con sus respectivos atributos o detalles. (formato p.e.
CorelDraw)
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos
59
Mapas de bits
• Dividida en una rejilla rectangular de píxeles.
• Cada píxel representa un valor discreto correspondiente a una señal analógica
registrada por el periférico.
• Se almacena en memoria de forma sucesiva empleando un número de bits para
representar el valor de cada píxel.
• Su calidad depende de la resolución (número de píxeles de la imagen) y del número
de bits por píxel.
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos
60
Mapas de bits
La digitalización de una señal analógica provoca pérdida de información, sin
embargo consideramos un sistema digital como muy preciso ¿por qué?. Digital
versus analógico (RGB o 24 bits, 6, 4 y 3 bits)
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos
61
Vectorial
• Descrita como una colección de objetos tales como líneas, polígonos y
textos con atributos o detalles (grosor, color, etc.) modelables por
medio de vectores y ecuaciones matemáticas que determinan tanto su
forma como su posición dentro de la imagen.
• Para visualizar una imagen, un programa evalúa las ecuaciones y escala
los vectores generando la imagen concreta a ver.
• Ocupan poco espacio
• Sólo adecuadas para dibujos geométricos
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Representación de datos
62
• Fundamentos de Informática y Programación para Ingeniería. Ejercicios
Resueltos para C y Matlab. Modesto Castrillón et al, Paraninfo, 2011.
• Capítulo 3 de Introducción a la informática, A. Prieto Espinosa, A. Lloris Ruiz,
J.C. Torres Cantero, McGraw-Hill, Madrid (1989)
• El codi digital (El código digital - Digital code)
Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11
Bibliografía
63