el sistema numérico decimal redes ii

9
El sistema numérico decimal Hemos utilizado el sistema decimal (de base 10) por tanto tiempo que prácticamente lo tomamos como algo natural. Cuando vemos un número, por ejemplo el 123, no pensamos en el valor en sí, en lugar de ésto hacemos una representación mental de cuántos elementos representa éste valor. En realidad, el número 123 representa: 1*10 2 + 2*10 1 + 3*10 0 ó lo que es lo mismo: 100 + 20 + 3 Cada dígito a la izquierda del punto decimal representa un valor entre cero y nueve veces una potencia incrementada de diez. Los dígitos a la derecha del punto decimal por su parte representan un valor entre cero y nueve veces una potencia decrementada de diez. Por ejemplo, el número 123.456 representa: 1*10 2 + 2*10 1 + 3*10 0 + 4*10 -1 + 5*10 -2 + 6*10 -3 El sistema numérico binario Los sistemas de cómputo modernos trabajan utilizando la lógica binaria. Las computadoras representan valores utilizando dos niveles de voltaje (generalmente 0V. y 5V.), con éstos niveles podemos representar exáctamente dos valores diferentes, por conveniencia utilizamos los valores cero y uno. Éstos dos valores por coincidencia corresponden a los dígitos utilizados por el sistema binario. El sistema binario trabaja de forma similar al sistema decimal con dos diferencias, en el sistema binario sólo está permitido el uso de los dígitos 0 y 1 (en lugar de 0~9) y en el sistema binario se utilizan potencias de 2 en lugar de potencias de 10. De aquí tenemos que es muy fácil convertir un número binario a decimal, por cada "1" en la cadena binaria, sume 2 n donde "n" es la posición del dígito binario a partir del punto decimal contando a partir de cero. Por ejemplo, el valor binario 11001010 2 representa: 1*2 7 + 1*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 1*2 1 + 0*2 0 = 128 + 64 + 8 + 2 = 202 10

Upload: javier-rivas

Post on 03-Jul-2015

319 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: El sistema numérico decimal Redes II

El sistema numérico decimal

Hemos utilizado el sistema decimal (de base 10) por tanto tiempo que prácticamente lo tomamos como algo natural. Cuando vemos un número, por ejemplo el 123, no pensamos en el valor en sí, en lugar de ésto hacemos una representación mental de cuántos elementos representa éste valor. En realidad, el número 123 representa:

1*102 + 2*101 + 3*100

ó lo que es lo mismo:

100 + 20 + 3

Cada dígito a la izquierda del punto decimal representa un valor entre cero y nueve veces una potencia incrementada de diez. Los dígitos a la derecha del punto decimal por su parte representan un valor entre cero y nueve veces una potencia decrementada de diez. Por ejemplo, el número 123.456 representa:

1*102 + 2*101 + 3*100 + 4*10-1 + 5*10-2 + 6*10-3

El sistema numérico binario

Los sistemas de cómputo modernos trabajan utilizando la lógica binaria. Las computadoras representan valores utilizando dos niveles de voltaje (generalmente 0V. y 5V.), con éstos niveles podemos representar exáctamente dos valores diferentes, por conveniencia utilizamos los valores cero y uno. Éstos dos valores por coincidencia corresponden a los dígitos utilizados por el sistema binario.El sistema binario trabaja de forma similar al sistema decimal con dos diferencias, en el sistema binario sólo está permitido el uso de los dígitos 0 y 1 (en lugar de 0~9) y en el sistema binario se utilizan potencias de 2 en lugar de potencias de 10. De aquí tenemos que es muy fácil convertir un número binario a decimal, por cada "1" en la cadena binaria, sume 2n donde "n" es la posición del dígito binario a partir del punto decimal contando a partir de cero. Por ejemplo, el valor binario 110010102 representa:

1*27 + 1*26 + 0*25 + 0*24 + 1*23 + 0*22 + 1*21 + 0*20

=128 + 64 + 8 + 2=20210

Para convertir un número decimal en binario es un poco más difícil. Se requiere encontrar aquellas potencias de 2 las cuales, sumadas, producen el resultado decimal, una forma conveniente es trabajar en "reversa" por ejemplo, para convertir el número 1359 a binario:

210=1024, 211=2048. Por tanto la mayor potencia de 2 menor que 1359 es 210. Restamos 1024 a 1359 y empezamos nuestro número binario poniendo un "1" a la izquierda. El resultado decimal es 1359-1024=335. El resultado binario hasta este punto es: 1.

La siguiente potencia de 2 en orden descendente es 29=512 lo que es mayor que el resultado de la resta del punto anterior, por lo tanto agregamos un 0 a nuestra cadena binaria, ahora es: 10. El resultado decimal es aún 335.

La siguiente potencia es 28=256 por lo que lo restamos a 335 y agregamos 1 a la cadena binaria: 101. El resultado decimal es: 79.

27=128, ésto es mayor que 79. Agregamos un 0 a la cadena binaria: 1010 en tanto que el valor decimal es: 79.

Restamos 26=64 a 79. La cadena binaria es ahora: 10101. El resultado decimal indica: 15.

Page 2: El sistema numérico decimal Redes II

15 es menor que 25=32, por tanto, Binario=101010, el valor decimal sigue siendo: 15. 15 es menor que 24=16, de aquí, Binario=1010100, el valor decimal continúa en: 15. 23=8 es menor que 15, así que agregamos un 1 a la cadena binaria: 10101001, en tanto que el

nuevo valor decimal es: 7. 22 es menor que 7. Binario es ahora: 101010011, el resultado decimal ahora vale: 3. 21 es menor que 3. Binario=1010100111, el nuevo valor decimal es: 1. Finalmente el resultado decimal es 1 lo que es igual a 20 por lo que agregamos un 1 a la cadena

binaria. Nuestro resultado indica que el equivalente binario del número decimal 1359 es: 10101001111

Formatos binarios

En un sentido estricto, cada número binario contiene una cantidad infinita de dígitos, también llamados bits que es una abreviatura de binary digits, por ejemplo, podemos representar el número siete de las siguientes formas:

111 00000111 000000000000111

Por conveniencia ignoraremos cualquier cantidad de ceros a la izquierda, sin embargo, como las instrucciones compatibles con los procesadores Intel 80x86 trabajan con grupos de ocho bits a veces es más fácil extender la cantidad de ceros a la izquierda en un múltiplo de cuatro ú ocho bits, por ejemplo, el número siete podemos representarlo así: 01112 ó 000001112. También es conveniente separar en grupos de cuatro dígitos los número binarios grandes, por ejemplo, el valor binario 1010111110110010 puede ser escrito así 1010 1111 1011 0010. Además, en una cadena binaria asignaremos al dígito de la extrema derecha como el bit de posición cero y cada bit subsecuente se le asignará el siguiente número sucesivo, de ésta manera un valor binario de ocho bits utiliza los bits cero al siete:X7 X6 X5 X4 X3 X2 X1 X0

Al bit cero se le conoce como el bit de bajo orden en tanto que al bit de la extrema izquierda diferente de cero se le llama bit de alto orden.

Organización de datos

En términos matemáticos un valor puede tomar un número arbitrario de bits, pero las computadoras por el contrario, generalmente trabajan con un número específico de bits, desde bits sencillos pasando por grupos de cuatro bits (llamados nibbles), grupos de ocho bits (bytes), grupos de 16 bits (words, ó palabras) y aún más. Como veremos mas adelante, existe una buena razón para utilizar éste orden.

Bits

La más pequeña cantidad de información en una computadora binaria es el bit, éste solamente es capaz de representar dos valores diferentes, sin embargo ésto no significa que exista una cantidad muy reducida de elementos representables por un bit, todo lo contrario, la cantidad de elementos que se pueden representar con un sólo bit es infinito, considere ésto, podemos representar por ejemplo, cero ó uno, verdadero ó falso, encendido ó apagado, masculino ó femenino. Más aún, no estamos limitados a representar elementos antagónicos, un bit sencillo puede representar cualesquiera dos valores, por ejemplo, blanco ó 432, perro ó caliente. Y para ir aún más lejos, dos bits adyacentes pueden representar cosas completamente independientes entre sí, lo que se debe tener en cuenta es que un bit sencillo sólo puede representar dos cosas a la vez. Esta característica otorga a las computadoras binarias un campo infinito de aplicaciones.

Nibbles

Un nibble es una colección de cuatro bits, ésto no representaría una estructura interesante si no fuera por dos razones: El Código Binario Decimal (BCD por sus siglas en inglés) y los números hexadecimales. Se

Page 3: El sistema numérico decimal Redes II

requieren cuatro bits para representar un sólo dígito BCD ó hexadecimal. Con un nibble se pueden representar 16 valores diferentes, en el caso de los números hexadecimales, cuyos valores 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, y F son representados con cuatro bits. El BCD utiliza diez dígitos diferentes (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) e igualmente se requiere de cuatro bits. De hecho se puede representar 16 elementos diferentes con un sólo nibble pero los dígitos hexadecimales y BCD son los principales representados por un nibble.

Bytes

Todavía se puede decir que el byte es la estructura de datos más importante utilizada por los procesadores 80x86. Un byte está compuesto de ocho bits y es el elemento de dato más pequeño direccionable por un procesador 80x86, ésto significa que la cantidad de datos más pequeña a la que se puede tener acceso en un programa es un valor de ocho bits. Los bits en un byte se enumeran del cero al siete de izquierda a derecha, el bit 0 es el bit de bajo orden ó el bit menos significativo mientras que el bit 7 es el bit de alto orden ó el bit más significativo. Nos referimos al resto de los bits por su número. Observe que un byte está compuesto de dos nibbles.Como un byte contiene ocho bits, es posible representar 28, ó 256 valores diferentes. Generalmente utilizamos un byte para representar valores numéricos en el rango de 0 ~ 255, números con signo en el rango de -128 ~ +127, códigos de caracter ASCII y otros tipos de datos especiales que no requieran valores diferentes mayores que 256.

Words (palabras)

Una palabra (word) es un grupo de 16 bits enumerados de cero hasta quince, y al igual que el byte, el bit 0 es el bit de bajo orden en tanto que el número quince es el bit de alto orden. Una palabra contiene dos bytes, el de bajo orden que está compuesto por los bits 0 al 7, y el de alto orden en los bits 8 al 15. Naturalmente, una palabra puede descomponerse en cuatro nibbles. Con 16 bits es posible representar 2 16

(65,536) valores diferentes, éstos podrían ser el rengo comprendido entre 0 y 65,535, ó como suele ser el caso, de -32,768 hasta +32,767. También puede ser cualquier tipo de datos no superior a 65,536 valores diferentes.

El sistema numérico hexadecimal

Un gran problema con el sistema binario es la verbosidad. Para representar el valor 20210 se requieren ocho dígitos binarios, la versión decimal sólo requiere de tres dígitos y por lo tanto los números se representan en forma mucho más compacta con respecto al sistema numérico binario. Desafortunadamente las computadoras trabajan en sistema binario y aunque es posible hacer la conversión entre decimal y binario, ya vimos que no es precisamente una tarea cómoda. El sistema de numeración hexadecimal, o sea de base 16, resuelve éste problema (es común abreviar hexadecimal como hex aunque hex significa base seis y no base dieciséis). El sistema hexadecimal es compacto y nos proporciona un mecanismo sencillo de conversión hacia el formato binario, debido a ésto, la mayoría del equipo de cómputo actual utiliza el sistema numérico hexadecimal. Como la base del sistema hexadecimal es 16, cada dígito a la izquierda del punto hexadecimal representa tantas veces un valor sucesivo potencia de 16, por ejemplo, el número 123416 es igual a:

1*163 + 2*162 + 3*161 + 4*160

lo que dá como resultado:

4096 + 512 + 48 + 4 = 466010

Cada dígito hexadecimal puede representar uno de dieciséis valores entre 0 y 1510. Como sólo tenemos diez dígitos decimales, necesitamos "inventar" seis dígitos adicionales para representar los valores entre

Page 4: El sistema numérico decimal Redes II

1010 y 1510. En lugar de crear nuevos símbolos para éstos dígitos, utilizamos las letras A a la F. La conversión entre hexadecimal y binario es sencilla, considere la siguiente tabla:

Binario Hexadecimal

0000 0

0001 1

0010 2

0011 3

0100 4

0101 5

0110 6

0111 7

1000 8

1001 9

1010 A

1011 B

1100 C

1101 D

1110 E

1111 F

Ésta tabla contiene toda la información necesaria para convertir de binario a hexadecimal y visceversa. Para convertir un número hexadecimal en binario, simplemente sustituya los correspondientes cuatro bits para cada dígito hexadecimal, por ejemplo, para convertir 0ABCDh en un valor binario:

0 A B C D (Hexadecimal)0000 1010 1011 1100 1101 (Binario)

Por comodidad, todos los valores numéricos los empezaremos con un dígito decimal; los valores hexadecimales terminan con la letra h y los valores binarios terminan con la letra b. La conversión de formato binario a hexadecimal es casi igual de fácil, en primer lugar necesitamos asegurar que la cantidad de dígitos en el valor binario es mútiple de 4, en caso contrario agregaremos ceros a la izquierda del valor, por ejemplo el número binario 1011001010, la primera etapa es agregarle dos ceros a la izquierda para que contenga doce ceros: 001011001010. La siguiente etapa es separar el valor binario en grupos de cuatro bits, así: 0010 1100 1010. Finalmente buscamos en la tabla de arriba los correspondientes valores hexadecimales dando como resultado, 2CA, y siguiendo la convención establecida: 02CAh.

Conversión de binario a decimalEl sistema de numeración binario u un sistema de posición donde cada dígito binario (bit) tiene un valor basado en su posición relativa al LSB. Cualquier número binario puede convenirse a su

Page 5: El sistema numérico decimal Redes II

equivalente decimal, simplemente sumando en el número binario las diversas posiciones que contenga un 1. Por ejemplo: 1 1 1 0 1 12 de binario a decimal 1 x 25 + 1 x 24 + 1 x 23 + 0 x 22 + 1 x 2 + 1 = 6910

Conversión de decimal a binarioExisten dos maneras de convenir un número decimal entero a su representación equivalente en el sistema binario. El primer método es inverso al proceso descrito anteriormente. El número decimal se expresa simplemente como una suma de potencias de 2 y luego los unos y los ceros se escriben en las posiciones adecuadas de los bits. Por ejemplo:

45 = 32 + 8 + 4 + l = 25 + 0 + 23 +2 2 + 0 + 20

entonces es igual a 1 0 1 1 0 12

Pasar a decimal el binario 101011102

1 0 1 0 1 1 1 0

Entonces el número se forma tomando los residuos pero en forma inversa, es decir el primer digito será el último residuo y así sucesivamente. El número quedaría como sigue:

1 0 0 0 0 0 1 02

Conversión de decimal a octalUn entero decimal se puede convertir a octal con el mismo método dc división repetida que se usó en la conversión de decimal a binario, pero con un factor de división dc 8 en lugar de 2. Por ejemplo:

con residuo 4

con residuo 4

con residuo 2

Al final resulta que:

16410 = 2448

Conversión de octal a binario La ventaja principal del sistema de numeración octal es la facilidad con que se puede realizar la conversión entre números binarios y octales. La conversión de octal a binario se lleva a cabo conviniendo cada dígito octal en su equivalente binario dc 3 bits. Por medio de estas conversiones, cualquier número octal se conviene a binario, convirtiéndolo dc manera individual. Por ejemplo, podemos convertir 516, a binario de la siguiente manera:

5 1 6

001 110 entonces:

5168 = 1010011102

Conversion de binario a octal La conversión de enteros binarios a octales es simplemente la operación inversa del proceso anterior. Los bits del número binario se agrupan en conjuntos de tres comenzando por el LSB. Luego, cada grupo se convierte a su equivalente octal. Por ejemplo: 111 001 101 110 7 1 5 6 entonces: 1110011011102 = 71568

Sistema De Numeración HexadecimalConversión de hexadecimal a decimal.- Un número hexadecimal se puede convenir a su equivalente decimal utilizando el hecho de que cada posición de los dígitos hexadecimales tiene

Page 6: El sistema numérico decimal Redes II

un valor que es una potencia de 16. El LSD tiene un valor de l60 = 1; el siguiente dígito en secuencia tiene un valor de 161 = 16; el siguiente tiene un valor de 162 = 256 y así sucesivamente. Por ejemplo:

81216 = 8 x 162 + 1 x 161 + 2 x 160

81216 = 2048 + 16 + 2

81216 = 206610

Conversión de decimal a hexadecimal Recuerde que efectuamos la conversión de decimal a binario por medio de la división repetida entre 2 y de decimal a octal por medio de la división repetida entre 8. De igual manera, la conversión de decimal a hexadecimal se puede efectuar por medio de la división repetida entre 16. Por ejemplo:

con residuo 7

con residuo 010

con residuo 1

entonces:

42310 = 1A716

Conversión de hexadecimal a binario Al igual que el sistema de numeración octal, el sistema hexadecimal se usa principalmente como método ‘taquigráfico” en la representación de números binarios. Es una tarea relativamente simple la de convertir un número hexadecimal en binario. Cada dígito hexadecimal se convierte en su equivalente binario de 4 bits. Por ejemplo:

6 D 2 3

1101 0010 0011 entonces:

6D2316 = 1101101001000112

Conversión de binario a hexadecimal Esta conversión es exactamente la operación inversa del proceso anterior. El número binario se agrupa en conjuntos de cuatro bits y cada grupo se convierte a su dígito hexadecimal equivalente. Cuando es necesario se añaden ceros para completar un grupo de cuatro bits.

11101001102 = 0011 1010 0110

3 A 6

11101001102 = 3A616