Download El Bit

Document related concepts
Transcript
APUNTE 1:
Sistemas de Numeración y
Medidas Informáticas
Introducción
En programación es frecuente acudir a diferentes sistemas de numeración según las circunstancias.
Hay que tener en cuenta que el hombre usa el sistema decimal, (según una opinión bastante general debido a una circunstancia más o menos afortunada: por la simple razón de que tiene diez dedos entre las dos
manos. A menudo se usa el cinco como base de numeración auxiliar). La palabra “dígito” y “dedo” tienen
la misma raíz latina, por eso usamos una numeración con 10 dígitos o dedos.
Para contar de 1 a 10 es fácil, pero ¿qué pasa cuando hay que contar más de diez cosas?. Pues usamos las
manos de un "amigo" para contar cuantas veces hemos usado los dedos de las nuestras, así "12", sería dos
más una vez diez.
Otra circunstancia curiosa es que en el sistema de numeración que usamos los números se leen y escriben
de derecha a izquierda, al revés del modo en que escribimos las palabras.
Cuando interpretamos números de varias cifras, hay que empezar por la derecha, el primer dígito son
unidades, el siguiente decenas, es decir cuantos grupos de 10 elementos estamos contando. El siguiente
centenas, es decir el número de grupos de 10 elementos de grupos de 10 elementos, o sea el número de
grupos de 100 elementos. Y así sucesivamente.
Sistema Binario
Estamos habituados al sistema de numeración decimal y nos parece lógico usarlo en todo momento. Pero
hay ocasiones en donde no es el más apropiado. Uno de esos mundos, en los que existen sistemas más
descriptivos de los fenómenos que el decimal, es el de los procesadores.
Las computadoras trabajan internamente con dos niveles de voltaje, por lo que su sistema de numeración
natural es el sistema binario (encendido, apagado).
Por su naturaleza digital, las computadoras son máquinas esencialmente binarias. Utilizan el sistema
de numeración llamado binario, en el que sólo se disponen dos signos: 0 y 1. Contando correlativamente
de manera binaria, diríamos: 0, 1, 10, 11, 100, 101, 110, 111, ...
Tanto el sistema binario, como el decimal y el hexadecimal, son sistemas en los que la posición de cada
dígito representa información de mucha importancia.
Veamos un ejemplo de cómo se descompone posicionalmente un numero decimal:
El número 7935 = 1000 * 7 + 100 * 9 + 10 * 3 + 1 * 5
Como hay diez símbolos (del 0 al 9), una decena representa 10 unidades, una centena representa 10 decenas, etc. Diez unidades de una posición, valen una unidad en la posición contigua a la izquierda. En el
sistema binario, con dos símbolos solamente, cada posición a la izquierda vale el doble de la que le sigue
a la derecha. O lo que es lo mismo decir, la relación entre las sucesivas posiciones se da según la sucesión
1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536 .....
la que a su vez puede expresarse como potencias crecientes de 2:
20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 210 , 211 , 212 , 213 , 214 , 215 , 216 .....
Para el sistema de numeración binaria, valen las dos reglas prácticas siguientes:
 Un número de n bits puede representar a un decimal de un valor de hasta 2n - 1
 El multiplicador del bit de posición n, vale 2n
Apunte 1 – Sistemas Binario y Hexadecimal - Página 1 de 3
Ejemplos:
un número de 8 bits cuenta desde 0 hasta 255.
El multiplicador del bit 7 es 128. (el bit número 7 tiene un “peso” de 128)
Notar que siempre se comienza a contar desde cero. En un número binario, al igual que en un decimal, el
bit menos significativo (correspondiente al multiplicador 2 0, o sea 1) es el que se escribe más a la derecha:
bit#
10
9
8
7
6
5
4
3
2
1
0
mult
1024
512
256
128
64
32
16
8
4
2
1
Veamos como ejemplo práctico un número de 7 bits cualquiera como 1001101 (notar que los bits se ordenan 6...0)
1001101 = 64 * 1 + 32 * 0 + 16 * 0 + 8 * 1 + 4 * 1 + 2 * 0 + 1 * 1
Esto nos proporciona una forma de traducir (cambiar de base) un número binario a decimal. Basta sumar
aquellos multiplicadores cuyos bits estén en 1 e ignorar aquellos cuyo bit es 0. En nuestro anterior ejemplo es:
1001101 = 64 + 8 + 4 + 1 = 77 decimal
Los números binarios son los que efectivamente fluyen dentro del procesador en una PC, se guardan en
memoria o disco, o se transmiten (modulados) por modem. Pero un humano no puede manipular con facilidad números como:
1101 0011 0101 0110 1010 0101 1100 0011
que es de 32 bits (hay 32 símbolos en el número, desde el bit 31 a la izquierda hasta el bit 0, a la derecha)
y se ha ordenado ex-profeso en grupos de a cuatro por cuestiones de comodidad que serán evidentes algo
más adelante.
Desafortunadamente las computadoras trabajan en sistema binario y aunque es posible hacer la conversión entre decimal y binario, no es precisamente una tarea cómoda. El sistema de numeración hexadecimal, o sea de base 16, resuelve este problema: es compacto y nos proporciona un mecanismo sencillo de
conversión hacia el formato binario.
El Bit
Es el acrónimo de Binary Digit (dígito binario). Un bit es la unidad mínima de información empleada en
informática. Representa un uno o un cero (abierto o cerrado, blanco o negro, cualquier sistema de codificación sirve). A través de secuencias de bits, se puede codificar cualquier valor discreto como, por ejemplo, números, palabras e imágenes.
Apunte 1 – Sistemas Binario y Hexadecimal - Página 2 de 3
Byte
Se describe como la unidad básica de almacenamiento de información, siendo equivalente a ocho bits.
Los prefijos kilo, mega, giga, etc. se consideran potencias de 1024 en lugar de potencias de 1000. Esto es
así porque 1024 es la potencia de 2 (210) más cercana a 1000.
Nombre Abrev. Factor
kilo
K
1 byte: 8 bits
210 = 1024
20
mega
M
2 = 1 048 576
giga
G
230 = 1 073 741 824
tera
T
240 = 1 099 511 627 776
peta
P
250 = 1 125 899 906 842 624
exa
E
260 = 1 152 921 504 606 846 976
zetta
Z
270 = 1 180 591 620 717 411 303 424
yotta
Y
1 Kilobyte: 1024 bytes
1 Megabyte: 1024 Kilobytes (Kb)
1 Gigabyte: 1024 Megabytes (Mb)
1 Terabyte: 1024 Gigabytes (Gb)
80
2 = 1 208 925 819 614 629 174 706 176
Sistema Hexadecimal
El sistema hexadecimal es un sistema de numeración vinculado a la informática, ya que las computadoras
interpretan los lenguajes de programación en bytes, que están compuestos de ocho dígitos.
Como veremos en la unidad de Hardware, el procesador 80386 hace ya más de una década manipulaba sin
problemas números de 32 bits. Un humano necesita manejarlo de otra manera y por eso se inventó el sistema hexadecimal, con 16 símbolos, ya que si uno agrupa cuatro bits obtiene 16 combinaciones posibles
(24 = 16).
Esto tiene una razón. Nuestro sistema decimal no se corresponde en la cantidad de dígitos con el binario
en cambio, el hexadecimal si, porque cada cuatro bits representan un dígito hexadecimal exacto.
En un sistema hexadecimal, necesitamos 16 símbolos. Ya que somos muy buenos manejando números decimales, adoptamos esos diez símbolos (0, 1, 2, 3, 4, 5, 6, 7, 8 y 9) para empezar, pero hay que agregar
otros seis: A, B, C, D, E y F
Cada trozo de información recibe un nombre propio según la cantidad de bits que posea:




un bit es la unidad de información binaria y con él se puede contar desde 0 hasta 1
un nibble son cuatro bits y se puede contar desde 0 hasta 15 (F en hexa)
con un byte (8 bits) puedo contar desde 0 hasta 255 ó FF hexa
una word tiene 16 bits y permite contar desde 0 hasta 65535 ó FFFF en hexa.
binario
0000
0001
0010
0011
0100
0101
0110
0111
decimal
0
1
2
3
4
5
6
7
Hexa
0
1
2
3
4
5
6
7
binario
1000
1001
1010
1011
1100
1101
1110
1111
decimal
8
9
10
11
12
13
14
15
Apunte 1 – Sistemas Binario y Hexadecimal - Página 3 de 3
hexa
8
9
A
B
C
D
E
F