· web viewintroduccion. las computadoras se utilizan para procesar información (gráficos,...

36
1. Introduccion Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a toda esta información con tan solo dos símbolos, el cero (0) y el uno (1)? Todo el software de la computadora está codificado en bits . Ahora bien, dependiendo del diseño de una computadora y del tipo de información a codificar, se pueden emplear distintas reglas de codificación binaria. Respecto al diseño de una computadora, una de las características que más la define es el máximo número de bits con que la CPU puede trabajar en paralelo (a la vez). A este número de bits se le conoce como palabra, y suele ser múltiplo de un byte . Así, la palabra suele ser de 8, 16, 32, 64 bits, etc. Por otro lado, para tipos de datos diferentes, se utilizan distintos sistemas de codificación, por ejemplo, no se codifica igual un número entero que un número real o que un carácter . Además, existen distintos tipos de representación para cada uno de ellos. Por ejemplo, los caracteres se pueden representar utilizando códigos tales como: ASCII , EBCDIC , Unicode , etc. 2. Sistemas de numeración Un sistema de numeración define a un conjunto de signos y reglas para expresar a los números. A lo largo de la historia los seres humanos hemos inventado distintos sistemas de numeración. De ellos, el sistema de numeración romano y el sistema de numeración arábigo son, hoy por hoy, dos de los más utilizados En el Sistema de Numeración Romano se pueden utilizar los siguientes símbolos: I, V, X, L, C, D y M, que se corresponden con los números: "uno", "cinco", "diez", "cincuenta", "cien", "quinientos" y "mil", respectivamente.

Upload: others

Post on 08-Mar-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

1. Introduccion

Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a toda esta información con tan solo dos símbolos, el cero (0) y el uno (1)?

Todo el software de la computadora está codificado en bits. Ahora bien, dependiendo del diseño de una computadora y del tipo de información a codificar, se pueden emplear distintas reglas de codificación binaria. Respecto al diseño de una computadora, una de las características que más la define es el máximo número de bits con que la CPU puede trabajar en paralelo (a la vez). A este número de bits se le conoce como palabra, y suele ser múltiplo de un byte. Así, la palabra suele ser de 8, 16, 32, 64 bits, etc. Por otro lado, para tipos de datos diferentes, se utilizan distintos sistemas de codificación, por ejemplo, no se codifica igual un número entero que un número real o que un carácter. Además, existen distintos tipos de representación para cada uno de ellos. Por ejemplo, los caracteres se pueden representar utilizando códigos tales como: ASCII, EBCDIC, Unicode, etc.

2. Sistemas de numeración

Un sistema de numeración define a un conjunto de signos y reglas para expresar a los números. A lo largo de la historia los seres humanos hemos inventado distintos sistemas de numeración. De ellos, el sistema de numeración romano y el sistema de numeración arábigo son, hoy por hoy, dos de los más utilizados

En el Sistema de Numeración Romano se pueden utilizar los siguientes símbolos: I, V, X, L, C, D y M, que se corresponden con los números: "uno", "cinco", "diez", "cincuenta", "cien", "quinientos" y "mil", respectivamente.

A continuación, se muestra un resumen de las combinaciones de símbolos más utilizadas en el Sistema de Numeración Romano.

Figura. Combinaciones de símbolos más usadas en el Sistema de Numeración Romano.

Page 2:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

Ejemplo: Los números XV, CLI, LXXVIII y MMXL representan a los números "quince", "ciento cincuenta y uno",  "setenta y ocho" y "dos mil cuarenta".

XV = X + V = 10 + 5 = 15

CLI = C + L + I = 100 + 50 + 1 = 151

LXXVIII = L + X + X + V + I + I = 50 + 10 + 10 + 5 + 1 + 1 + 1 = 78

MMXL = M + M - X + L = 1000 + 1000 - 10 + 50 = 2040

El Sistema Romano tiene el inconveniente principal de que no facilita la realización de cálculos matemáticos por escrito. Esto se debe, en gran medida, a que no es un sistema de numeración posicional, es decir, con independencia de la posición en que aparezca un signo en una secuencia de símbolos romanos, éste siempre vale lo mismo. Por ejemplo, el signo X siempre representa al número "diez". A pesar de ello, hoy en día, todavía se usan los números romanos en distintos ámbitos, por ejemplo, para numerar las horas de algunos relojes, para numerar las primeras páginas de un libro, etc.

Con el Sistema de Numeración Arábigo o Decimal se pueden representar infinitos números reales. Para ello, se utilizan diez cifras o dígitos numéricos: 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9 (diez son los dedos de las manos). También se usan los signos más (+) y menos (-) para representar a los números positivos y negativos, respectivamente, y un punto (.) o una coma (,) para separar la parte entera de la parte fraccionaria.

Numero real = parte entera , parte fraccionaria

Ejemplo 1: Los números 5,6 y -502,12 representan a los números "cinco con seis" y "menos quinientos dos coma doce".

5,6 = 5 + 0,6

-502,12 = -500 - 2 - 0,1 - 0,02

Una de las características más importantes del Sistema Decimal es que es un sistema de numeración posicional.

Sistemas de numeración posicional

En un sistema de numeración posicional, cada cifra representa a un valor relativo diferente, dependiendo de su valor absoluto y de su posición en una secuencia de

Page 3:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

dígitos. Esta característica le convierte en un sistema de numeración adecuado para realizar operaciones matemáticas por escrito, tales como: la suma, la resta, la multiplicación o la división.

Ejemplo 2: En el Sistema Decimal, el número entero "cuatrocientos cuarenta y cuatro" se representa como 444. Empezando por la izquierda, el primer 4 representa al "cuatrocientos" (400), el segundo 4 representa al "cuarenta" (40) y el último 4 representa al "cuatro" (4). En este caso, las tres cifras tienen como valor absoluto: el 4, y como valores relativos: el 400, el 40 y el 4.

444 = 400 + 40 + 4

Un sistema de numeración posicional se caracteriza por su base, que viene determinada por el número de dígitos que utiliza.

Ejemplo 3: La bases de los Sistemas Decimal, Binario, Octal y Hexadecimal son 10, 2, 8 y 16, debido a que usan diez, dos, ocho y dieciséis cifras, respectivamente. En la siguiente tabla se muestran los dígitos de cada uno de estos sistemas de numeración.

Figura. Dígitos de los sitemas de numeración de base 2, 8, 10 y 16.

Los signos hexadecimales A, B, C, D, E y F equivalen, respectivamente, a los números 10, 11, 12, 13, 14 y 15 en base 10

En cualquier sistema de numeración posicional, una secuencia de dígitos se puede representar, formalmente, de la siguiente manera:

Nb = ap-1 ap-2 ... a1 a0 , a-1 a-2 ... a-q+1 a-q

siendo (N) el número o secuencia de signos, (b) la base, (p) el número de dígitos de la parte entera, (q) el número de dígitos de la parte fraccionaria, (ai) las cifras del número e (i) la posición de cada cifra con respecto a la coma (,). Cumpliéndose que para todo dígito a,

0 <= a <= b-1

Page 4:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

y para toda posición i,

-q <= i <= p-1

Ejemplo 4: En el Sistema Decimal, el número real 4305,86 se puede expresar como

4305,8610

siendo el número N = 4305,86, la base b = 10, el número de dígitos de la parte entera p = 4, el número de dígitos de la parte fraccionaria q = 2 y las cifras a3 = 4, a2 = 3, a1 = 0, a0 = 5, a-1 = 8 y a-2 = 6. Cumpliéndose que para todo dígito a,

0 <= a <= 9

y para toda posición i,

-2 <= i <= 3

Ejemplo 5: En el Sistema Binario, el número 11010,001 se puede enunciar como

11010,0012

siendo el número N = 11010,001, la base b = 2, el número de dígitos de la parte entera p = 5, el número de dígitos de la parte fraccionaria q = 3 y las cifras a4 = 1, a3 = 1, a2 = 0, a1 = 1, a0 = 0, a-1 = 0, a-2 = 0 y a-3 = 1. Cumpliéndose que para todo dígito a,

0 <= a <= 1

y para toda posición i,

-3 <= i <= 4

Otra característica importante de los sistemas de numeración posicional es que con n dígitos se pueden representar bn números diferentes.

Ejemplo 6: Con tres dígitos, en el Sistema Decimal se pueden representar 103 números enteros positivos distintos, es decir, mil números: del 00010 al 99910, ambos inclusive.

Ejemplo 7: Con tres dígitos, en los Sistemas Binario, Octal y Hexadecimal se pueden representar 23, 83 y 163 números distintos, respectivamente, es decir, 8, 512 y 4096 números, que van desde el 0002 hasta el 1112, desde el 0008 hasta el 7778 y desde el 00016 hasta el FFF16.

Teorema Fundamental de la Numeración

El Teorema Fundamental de la Numeración (TFN) establece que en cualquier

Page 5:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

sistema de numeración posicional todos los números pueden expresarse mediante la siguiente suma de productos:

Nb = ap-1∙bp-1 + ap-2∙bp-2 + ... + a1∙b1 + a0∙b0 + a-1∙b-1 + a-2∙b-2 + ... + a-q+1∙b-q+1 + a-q∙b-q

es decir,

Figura. Fórmula del Teorema Fundamental de la Numeración.

Ejemplo 8: Aplicando el TFN, el número real 4305,86, en base 10, se puede expresar como:

4305,8610 = 4∙103 + 3∙102 + 0∙101 + 5∙100 + 8∙10-1 + 6∙10-2

4305,8610 = 4∙1000 + 3∙100 + 0∙10 + 5∙1 + 8∙0,1 + 6∙0,01

4305,8610 = 4000 + 300 + 0 + 5 + 0,8 + 0,06

En la secuencia de dígitos ap-1 ap-2 ... a1 a0 , a-1 a-2 ... a-q+1 a-q cada cifra tiene un peso diferente a las demás. El peso de un dígito viene determinado por su posición respecto a la coma (,) decimal. Cuanto más a la izquierda se encuentra un dígito, más peso tiene, es decir, más significativo es. Por tanto, el dígito más significativo o de mayor peso es ap-1 y el menos significativo o de menor peso es a-q. Esto es así porque el peso de ap-1 es bp-1 y el peso de a-q es b-q.

 Ejemplo 9: En la secuencia de dígitos 4305,86, en base 10, el signo más significativo es el 4, que representa al 4000, ya que su peso es 103, y el menos significativo es el 6, que representa al 0,06, ya que su peso es 10-2.

En resumen, el TFN dice que en cualquier sistema de numeración posicional de base b, un número N representa a la suma acumulada de los productos de sus dígitos ap-1, ap-

2, ..., a1, a0, a-1, a-2, ..., a-q+1 y a-q por sus respectivos pesos bp-1, bp-2, ..., b1, b0, b-1, b-2, ..., b-q+1 y b-q.

Este tipo de conversión sirve para pasar un número N de cualquier base (b) a base 10. Para ello, se tiene que hacer uso del Teorema Fundamental de la Numeración (TFN).

Ejemplo: Si se quiere convertir los números 10,1012, 703,48 y 6C,116 a base 10, aplicando el TFN, se obtiene que:

10,1012 = 1∙21 + 0∙20 + 1∙2-1 + 0∙2-2 + 1∙2-3 = 2 + 0 + 0,5 + 0 + 0,125 = 2,62510

703,48 = 7∙82 + 0∙81 + 3∙80 + 4∙8-1 = 448 + 0 + 3 + 0,5 = 451,510

Page 6:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

6C,116 = 6∙161 + C∙160 + 1∙16-1 = 96 + 12 + 0,0625 = 108,062510

Este tipo de conversión se utiliza para cambiar un número N de base 10 a cualquier otra base (b). Para ello, se deben realizar dos pasos por separado:

1. Convertir la parte entera del número N10, dividiéndola, sucesivamente, entre b, hasta obtener un cociente más pequeño que b. La parte entera del número que estamos buscando lo compondrá el último cociente y los restos que se hayan ido obteniendo, tomados en orden inverso.

2. Convertir la parte fraccionaria del número N10, multiplicándola, repetidamente, por b, hasta obtener un cero en la parte fraccionaria o hasta que se considere oportuno, ya que, puede ser que el cambio de base de una fracción exacta se convierta en una fracción periódica. La parte fraccionaria del número buscado lo formarán las partes enteras de los números que se hayan ido obteniendo en cada producto, cogidas en ese mismo orden.

Ejemplo: Para convertir el número 13,312510 a base 2, en primer lugar hay que dividir, sucesivamente, la parte entera del número, en este caso (1310), entre 2, hasta obtener un cociente más pequeño que 2.

Como el último cociente (a3), que vale (1), ya es más pequeño que el divisor (2), hay que parar de dividir. Por tanto,

1310 = 11012

El segundo paso consiste en convertir la parte fraccionaria del número (0,312510). Para ello, se deben realizar los siguientes cálculos:

La parte fraccionaria desaparece después de realizar cuatro multiplicaciones. Así pues,

0,312510 = 0,01012

En resumen,

13,312510 = 1101,01012

Page 7:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

Para comprobar si los cálculos están bien hechos, podemos realizar la conversión inversa, es decir, podemos pasar el número 1101,01012 a base 10. De manera que, usando el TFN los cálculos son:

1101,01012 = 1∙23 + 1∙22 + 0∙21 + 1∙20 + 0∙2-1 + 1∙2-2 + 0∙2-3 + 1∙2-4 =

= 8 + 4 + 0 + 1 + 0 + 0,25 + 0 + 0,0625  =

= 13,312510

Convertir un número N de base (b) a otra base (c), ambas distintas de 10, se puede hacer en los dos pasos siguientes:

1. Convertir el número Nb de base (b) a base 10. 2. Convertir el número N10 de base 10 a base (c).

Ejemplo 1: Usando el método descrito, para convertir el número 16,518 a base 2, en primer lugar lo pasaremos a base 10 con el Teorema Fundamental de la Numeración (TFN):

16,518 = 1∙81 + 6∙80 + 5∙8-1 + 1∙8-2 = 8 + 6 + 0,625 + 0,015625 = 14,64062510

y, a continuación, cambiaremos el número obtenido, 14,64062510, a base 2. Los cálculos de la parte entera son:

y las operaciones de la parte fraccionaria son:

Por tanto,

16,518 = 14,64062510 = 1110,1010012

Sin embargo, puesto que las bases de los Sistemas Binario y Octal, (2) y (8), ambas son potencias de 2, es decir, 2 = 21 y 8 = 23, las conversiones de octal a binario y viceversa se pueden realizar de forma directa. Para ello, hay que conocer la correspondencia de dígitos que existe entre ambas bases.

Page 8:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

Figura. Tabla de correspondencias entre los dígitos de los Sistemas Octal y Binario.

De la tabla se deduce que, por ejemplo, el número 68 equivale al 1102, el número 112

equivale al 38 ó el número 548 equivale al 1011002, ya que:

En consecuencia, para convertir el número 16,518 a binario, podemos hacer corresponder cada uno de sus dígitos con sus tres equivalentes en binario, de forma que:

Los ceros a la izquierda de la parte entera o a la derecha de la parte fraccionaria se desprecian. Así pues, obtenemos el resultado que ya sabíamos,

16,518 = 1110,1010012

Ejemplo 2: Para convertir al Sistema Hexadecimal (base 16) el número 1000000001111,112, igualmente, se puede usar la tabla de correspondencias entre los dígitos de los Sistemas Hexadecimal y Binario, haciendo corresponder grupos de cuatro bits con los dígitos equivalentes en hexadecimal.

Figura. Tabla de correspondencias entre los dígitos de los Sistemas Hexadecimal y Binario.

De tal manera que:

Page 9:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

Por tanto,

1000000001111,112 = 100F,C16

Si primero pasásemos el número a base 10, haríamos:

1000000001111,112  = 212 + 23 + 22 + 21 + 20 + 2-1 + 2-2 =

= 4096 + 8 + 4 + 2 + 1 + 0,5 + 0,25 =

= 4111,7510

convirtiendo, después, el número 4111,7510 a base 16. Así pues, tendríamos que realizar las siguientes divisiones para la parte entera:

y las siguientes multiplicaciones para la parte fraccionaria:

y como no podía ser de otra forma,

1000000001111,112 = 4111,7510 = 100F,C16

3. ARITMETICA BINARIA

Todas las operaciones matemáticas (sumas, restas, multiplicaciones, etc.) que realiza la computadora están basadas en la aritmética binaria.

Suma binaria

La aritmética binaria es muy similar a la aritmética decimal. Por ejemplo, para realizar una suma binaria hay que tener en cuenta la siguiente tabla:

Page 10:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

Figura. Suma binaria.

Ejemplo 1: Para sumar los números binarios 100102 y 1102 se puede escribir:

Para comprobar si la suma es correcta, podemos convertir los números binarios a base 10. Así pues, aplicando el TFN obtendremos:

1º Sumando → 100102 = 1∙24 + 0∙23 + 0∙22 + 1∙21 + 0∙20 = 16 + 0 + 0 + 2 + 0 = 1810

2º Sumando → 1102 = 1∙22 + 1∙21 + 0∙20 = 4 + 2 + 0 = 610

Resultado → 110002 = 1∙24 + 1∙23 + 0∙22 + 0∙21 + 0∙20 = 16 + 8 + 0 + 0 + 0 = 2410

y, efectivamente,

1810 + 610 = 2410

Resta binaria

Si se quiere realizar una resta binaria se debe considerar la siguiente tabla:

Figura. Resta binaria.

Page 11:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

Ejemplo 2: Para restar los números binarios 1010012 y 10112 escribiremos:

Multiplicación binaria

Para efectuar una multiplicación binaria se tiene que tener en cuenta la siguiente tabla:

Figura. Multiplicación binaria.

Ejemplo 3: Para realizar el producto de los números binarios 101012 y 1012 hay que realizar los siguientes cálculos:

División binaria

En cuanto a las divisiones binarias, las reglas también son las mismas que en el Sistema Decimal, con la ventaja de que en binario sólo se usan dos dígitos.

Ejemplo 4: Para dividir 1100102 entre 102 los cálculos son:

Page 12:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

 

5.1 Binario Puro

Los números escritos en Binario Puro (BP) sólo pueden ser positivos, ya que, en este tipo de representación los números negativos no están contemplados. Por tanto, su rango de representación va desde el número 010 hasta el número (2n - 1)10, siendo n el número de bits dedicados a representar a los números enteros. De modo que, en este sistema de numeración, el rango de valores que puede tomar un cierto número x, viene dado por la expresión:

Figura. Rango de representación en Binario Puro.

Ejemplo 1: En Binario Puro, para n = 8, el rango de representación es:

De forma que, se pueden representar 28 = 256 números enteros, que van desde el 010

hasta el 25510.

Ejemplo 2: En Binario Puro, para n = 8, el número 2310 se representa de la siguiente manera:

Ejemplo 3: En Binario Puro, para n = 8, los números -6810 y 37910 no se pueden escribir, porque están fuera de su rango de representación (010 <= x <= 25510).

Por otra parte, dado un número (N) en Binario Puro, para calcular su valor en base 10,

Page 13:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

se debe utilizar la fórmula:

Figura. Fórmula para calcular, en base 10, el valor de un número escrito en Binario Puro.

Ejemplo 4: Si se quiere calcular el valor en base 10 del número 10110001BP, aplicando la fórmula dada, se obtiene que:

10110001BP = ( 1∙27 + 1∙25 + 1∙24 + 1∙20 )10 = ( 128 + 32 + 16 + 1 )10 = 17710

Todos los sistemas de representación de números, ya sean estos enteros o reales, tienen el inconveniente principal de que al llevar a cabo operaciones matemáticas con dichos números, se puede producir desbordamiento. El desbordamiento sucede cuando el resultado de una operación está fuera del rango de representación.

Ejemplo 5: Para n = 8, al calcular la suma de los números 11001000BP y 11001011BP, se producirá desbordamiento:

11001000BP y 11001011BP equivalen a 20010 y 20310, respectivamente. Por tanto, la suma de ambos números sería 40310, que está fuera del rango de representación para n = 8 (010 <= x <= 25510). Obsérvese que, para representar al número 40310 en Binario Puro se necesitan 9 bits, uno más de los disponibles.

Por otro lado, para saber de antemano el número n de cifras necesarias para representar en Binario Puro a un determinado número N del Sistema Decimal, se puede calcular el logaritmo en base 2 del número decimal, de forma que:

Ejemplo 6: Si se quiere saber cuantas cifras se necesitan para representar al número 2710 en Binario Puro, se debe calcular el logaritmo en base 2 de 2710.

Por tanto, se necesitan 5 bits. De hecho, se puede comprobar que,

2710 = 11011BP

Page 14:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

5.2 SIGNO Y MAGNITUD

En la representación de un número entero en Signo Magnitud, también llamada Signo Módulo, de los n bits participantes en dicha representación, el más significativo se encarga de representar al signo del mismo, denominándosele bit de signo. El resto de bits representan a la magnitud. Por tanto, dado un número en Signo Magnitud de n bits,

NSM = an-1 an-2 ... a1 a0

el bit an-1 representa al signo del número y el resto de bits: an-2, ..., a1 y a0, a la magnitud del mismo.

Cuando se quiera representar a un número negativo, el bit de signo valdrá 1, siendo 0 cuando el número sea positivo. El rango de representación de este sistema es el siguiente:

Figura. Rango de representación en Signo Magnitud.

Ejemplo 1: En Signo Magnitud, para n = 8, el bit a7 representa al signo del número, y el resto de bits: a6, a5, a4, a3, a2, a1 y a0, a la magnitud del mismo:

Su rango de representación es:

Por consiguiente, se pueden representar 28 - 1 = 255 números enteros, que van desde el -12710 hasta el 12710.

Page 15:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

Ejemplo 2: En Signo Magnitud, para n = 8, el número 2310 se escribe:

Al ser un número positivo, el bit de signo vale cero (a7 = 0) y, como se puede observar, los números positivos escritos en Signo Magnitud se representan igual que si se escribiesen en Binario Puro:

2310 = 00010111SM = 00010111BP

Ejemplo 3: En Signo Magnitud, para n = 8, el número -2310 se simboliza con la misma magnitud que el número 2310, diferenciándose, solamente, en el bit de signo, que al tratarse de un número negativo, ahora tiene que valer 1, en vez de 0. Así pues, su representación es:

Por tanto,

-2310 = 10010111SM

Por otro lado, para calcular el valor en base 10 de un número entero (N) escrito en Signo Magnitud, hay que hacer uso de la fórmula:

Figura. Fórmula para calcular, en base 10, el valor de un número entero escrito en Signo Magnitud.

Ejemplo 4: Para calcular los valores en base 10 de los números 11100001SM y 00011010SM, se debe emplear la fórmula anterior. De tal manera que:

11100001SM = ( (1 - 2∙1) ∙ (1∙26 + 1∙25 + 1∙20) )10 =

= ( (1 - 2) ∙ (64 + 32 + 1) )10 = ( (-1) ∙ (97) )10 = -9710

00011010SM = ( (1 - 2∙0) ∙ (1∙24 + 1∙23 + 1∙21) )10 =

= ( (1 - 0) ∙ (16 + 8 + 2) )10 = ( (1) ∙ (26) )10 = 2610

Page 16:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

Obsérvese que, en Signo Magnitud, al problema de desbordamiento se le suma que el número 010 tiene dos representaciones.

Ejemplo 5: En Signo Magnitud, para n = 8, el número 010 se puede escribir de dos formas:

010 = 00000000SM = 10000000SM

5.3 Complemento a 1 (Complemento a la Base Menos 1)

En este sistema de representación, los números positivos se expresan igual que en Signo Magnitud o que en Binario Puro. Sin embargo, para escribir los números negativos se utiliza el Complemento a la Base Menos 1. De forma normalizada, el Complemento a la Base Menos 1 de un número entero positivo N de base b, se expresa de la siguiente manera:

Cb-1(N) = bn - 1 - N

siendo n el número de cifras destinadas a representar al número. Por tanto, en codificación binaria, el Complemento a 1 (C1) de un número entero positivo (N) se puede expresar como:

C1(N) = 2n - 1 - N = NC1

En Complemento a 1, el rango de representación es el mismo que en Signo Magnitud:

Figura. Rango de representación en Complemento a 1.

Ejemplo 1: En Complemento a 1, para n = 16, el rango de representación es:

Así pues, se pueden representar 216 - 1 = 65535 números enteros, que van desde el -3276710 hasta el 3276710.

Page 17:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

Ejemplo 2: En Complemento a 1, para n = 16, el número positivo 950310 se representa igual que en Signo Magnitud o que en Binario Puro:

Por tanto,

950310 = 0010010100011111C1 = 0010010100011111SM = 0010010100011111BP

Ejemplo 3: En Complemento a 1, para n = 16, el número -950310 se escribe calculando el Complemento a la Base Menos 1 del número 950310 escrito en base 2, es decir, del número 100101000111112:

C1(N) = C1(10010100011111) =

= 2n - 1 - N =

= 216 - 1 - 10010100011111 =

= 10000000000000000 - 1 - 10010100011111 =

= 1101101011100000C1

En consecuencia,

-950310 = 1101101011100000C1

Obsérvese que, el Complemento a 1 de un número entero positivo (N) escrito en binario es el resultado de cambiar todos los bits de valor, es decir, todos los ceros por unos y todos unos por ceros.

Por otra parte, dado un número entero positivo (N) en Complemento a 1, para calcular su valor en base 10, se puede utilizar la misma fórmula que en Signo Magnitud o que en Binario Puro.

Un número (N) representado en Complemento a 1 es positivo si el bit más significativo es cero. En caso contrario, el número será negativo, y para calcular su valor en base 10, habrá que cambiar todos los unos por ceros y todos los ceros por unos, obteniendo así su correspondiente número positivo, al cual sí se le puede aplicar una de las fórmulas anteriores y cambiarle el signo al resultado.

Page 18:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

Ejemplo 4: Si se desea calcular el valor en base 10 del número 1111101011111101C1, puesto que el bit más significativo es un 1, sabemos que es negativo, por tanto, en primer lugar, cambiaremos los ceros por unos y los unos por ceros:

1111101011111101C1(negativo) → 0000010100000010C1(positivo)

y, en segundo lugar, calcularemos el valor en base 10 del número obtenido, con la misma fórmula que se emplea para los números escritos en Signo Magnitud:

0000010100000010C1 = ( (1 - 2∙0) ∙ (1∙210 + 1∙28 + 1∙21) )10 =

= ( (1) ∙ (1024 + 256 + 2) )10 = 128210

o con la misma fórmula utilizada para números representados en Binario Puro:

0000010100000010C1 = ( 1∙210 + 1∙28 + 1∙21 )10 = ( 1024 + 256 + 2 )10 = 128210

De forma que:

1111101011111101C1(negativo) = -( 0000010100000010C1(positivo) )10 = -128210

es decir,

1111101011111101C1 = -128210

Por otro lado, al igual que ocurría en Signo Magnitud, el número 010 también tiene dos representaciones en Complemento a 1.

Ejemplo 5: Para n = 16, el número 010 se puede escribir de dos formas en Complemento a 1:

010 = 0000000000000000C1 = 1111111111111111C1

5.4 COMPLEMENTO A 2 (COMPLEMENTO A LA BASE)

En este sistema de representación, los números positivos se expresan igual que en Complemento a 1, Signo Magnitud o Binario Puro. Sin embargo, para escribir los números negativos se utiliza el Complemento a la Base. Formalmente, el Complemento a la Base de un número entero positivo N de base b, se expresa del siguiente  modo:

Cb(N) = bn - N

siendo n el número de cifras empleadas en la representación del número. Por tanto, en codificación binaria, el Complemento a 2 (C2) de un número entero positivo (N) se puede expresar como:

C2(N) = 2n - N = NC2

Page 19:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

El rango de representación en Complemento a 2 es:

Figura. Rango de representación en Complemento a 2.

Ejemplo 1: En Complemento a 2, para n = 16, el rango de representación es:

Ejemplo 2: En Complemento a 2, para n = 16, el número positivo 950310 se representa igual que en Complemento a 1, Signo Magnitud o Binario Puro:

950310  = 0010010100011111C2 = 0010010100011111C1 =

= 0010010100011111SM = 0010010100011111BP

Ejemplo 3: En Complemento a 2, para n = 16, el número -950310 se escribe calculando el Complemento a la Base del número 950310 representado en base 2, es decir, del número 100101000111112:

C2(N) = C2(10010100011111) =

= 2n - N =

= 216 - 10010100011111 =

= 10000000000000000 - 10010100011111 =

= 1101101011100001C2

En consecuencia,

-950310 = 1101101011100001C2

Fíjese que, el Complemento a 2 de un número entero positivo (N) escrito en binario es el resultado de cambiar todos los bits de valor (ceros por unos y unos por ceros), obteniendo así el Complemento a 1 del número y, después, sumarle 1.

C2(N) = C1(N) + 1 = NC1 + 1 = NC2

De esta manera, en tan solo dos pasos se puede calcular, fácilmente, el Complemento a 2. Por ejemplo, dado el número:

Page 20:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

para calcular el Complemento a 2, en un primer paso se calcula el Complemento a 1 de dicho número:

y, en un segundo paso, se le suma 1 al número obtenido en Complemento a 1:

El resultado es el esperado:

Por otro lado, si se pretende calcular el valor en base 10 de un número entero positivo (N) escrito Complemento a 2, se puede usar la misma fórmula que en Signo Magnitud o que en Binario Puro.

Un número (N) representado en Complemento a 2 es positivo si el bit más significativo es cero. En caso contrario, el número será negativo, y para calcular su valor en base 10, se tiene que utilizar la fórmula:

Figura. Fórmula para calcular, en base 10, el valor de un número entero negativo escrito en Complemento a 2.

Ejemplo 4: Para calcular el valor en base 10 del número 1001000000000110C2, se debe emplear la fórmula anterior. De tal forma que:

1001000000000110C2 = ( (-1∙215) + (1∙212 + 1∙22 + 1∙21) )10 =

= ( (-32768) + (4102) )10 = -2866610

5.5 EXCESOA 2n-1

En Exceso a 2n-1, si se dispone de n bits para representar a un número entero (N) positivo o negativo, dicho número se representa como N + 2n-1, por tanto:

NEX = N + 2n-1

Page 21:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

El rango de representación en Exceso a 2n-1 es el mismo que en Complemento a 2:

Ejemplo 1: En Exceso a 2n-1, para n = 16, el número positivo 950310 se representa como:

950310 = ( 950310 + (216-1)10 )EX =

= ( 950310 + (215)10 )EX =

= ( 950310 + 3276810 )EX =

= ( 4227110 )EX =

= ( 10100101000111112 )EX =

= 1010010100011111EX. a 32768

Por otro lado, para calcular el valor en base 10 de un número entero (N) escrito en Exceso a 2n-1, se tiene que utilizar la fórmula:

Figura. Fórmula para calcular, en base 10, el valor de un número entero escrito en Exceso a 2n-1.

Ejemplo 2: Empleando la fórmula dada, si se quiere calcular el valor en base 10 del número 0000000001001001EX. a 32768, el resultado es:

0000000001001001EX. a 32768 = ( (1∙26 + 1∙23 + 1∙20) - 215 )10 =

= ( (64 + 8 + 1) - 32768 )10 = -3269510

5.6 BCD

El BCD (Binary Coded Decimal) sirve para codificar en binario los dígitos del Sistema Decimal. Para ello, se utiliza la tabla de correspondencias de la tabla siguiente, en donde se puede ver que a cada dígito decimal se le hace corresponder su codificación en Binario Puro con cuatro bits.

Figura. Tabla de correspondencias entre los dígitos de los Sistemas Decimal y BDC.

Page 22:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

Ejemplo: Si se quiere pasar el número 670910 a BCD, utilizando la tabla de correspondencias entre los dígitos de los Sistemas Decimal y BCD, se obtiene que:

Por tanto,

670910 = 0110011100001001BCD

6.1 ESTANDAR IEEE 754

El estándar IEEE 754 ha sido definido por el Instituto de Ingenieros Eléctricos y Electrónicos (Institute of Electrical and Electronics Engineers, IEEE) y establece dos formatos básicos para representar a los números reales en la computadora digital: precisión simple y precisión doble.

Precisión simple

En precisión simple, para escribir un número real se usan 32 bits (4 bytes): 1 bit para el signo (s) del número, 23 bits para la mantisa (m) y 8 bits para el exponente (exp), que se distribuyen de la siguiente forma:

Figura. Representación de un número real con precisión simple en el estándar 754.

El exponente se suele representar en Exceso a 2n-1-1, mientras que, para la mantisa, normalmente se utiliza Signo Magnitud. Además, la mantisa se suele normalizar colocando la coma decimal a la derecha del bit más significativo.

Ejemplo 1: Para escribir el número

101110,0101011101000011111000011111000100112 en el estándar IEEE 754 con precisión simple, exponente en Exceso a 2n-1-1 y mantisa en Signo Magnitud, primero hay que normalizarlo:

1,011100101011101000011111000011111000100112 x 25

El exponente, en Exceso a 2n-1-1, será:

Page 23:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

510 + (28-1 - 1)10 = 510 + (27 - 1)10 = 510 + (128 - 1)10 = 13210 = 10000100EX. a 127

De la mantisa se cogen los bits 23 bits más significativos:

1,0111001010111000000111

El resto de bits no se pueden representar, ya que, no caben en la mantisa. Sin embargo, cuando la mantisa se normaliza situando la coma decimal a la derecha del bit más significativo, dicho bit siempre vale 1. Por tanto, se puede prescindir de él, y coger en su lugar un bit más de la mantisa. De esta forma, la precisión del número representado es mayor. Así, los bits de la mantisa serán:

01110010101110100001111

Al bit omitido se le llama bit implícito. Por otra parte, el bit de signo vale 0, ya que, el número es positivo. En consecuencia, el número se puede representar como:

Los programadores, para representar a los números reales en este formato, suelen utilizar el Sistema Hexadecimal.

Así pues,

En este caso, los números no son exactamente iguales, ya que, con precisión simple no se han podido representar todos los bits de la mantisa.

Ejemplo 2: Dado el número 3E400000CFL del estándar IEEE 754 con precisión simple, exponente en Exceso a 2n-1-1 y mantisa en Signo Magnitud con bit implícito, para averiguar a qué número representa en base 10, se pueden realizar los siguientes pasos:

1º) Convertir 3E40000016 a base 2:

Page 24:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

2º) Obtener los bits del signo, de la mantisa y del exponente:

3º) Pasar el exponente a base 10:

011111002 - (28-1 - 1)10 = 12410 - (27 - 1)10 = 12410 - (128 - 1)10 = 12410 - 12710 = -3

4º) Escribir el número en notación científica. Para ello, la mantisa se debe escribir con el bit implícito (1), seguido de la coma decimal (,) y de los bits de la mantisa (10000000000000000000000), teniendo en cuenta que los ceros por la derecha se pueden despreciar. Por otra parte, el número es positivo, ya que, el bit de signo es 0. Por tanto, el número es:

1,1 x 2-3

5º) Expresar el número en base 10. Para ello, hay dos formas de hacerlo, la primera es:

1,1 x 2-3 = 0,00112 = ( 2-3 + 2-4 )10 =  0,12510 + 0,062510 = 0,187510

y la segunda:

1,1 x 2-3 = ( ( 20 + 2-1) x 2-3 )10 = ( ( 1 + 0,5) x 0,125 )10 = ( 1,5 x 0,125 )10  = 0,187510

Por tanto,

3E400000CFL (PRECISIÓN SIMPLE) = 1,1 x 2-3 = 0,00112 = 0,187510

Precisión doble

Por otro lado, en precisión doble, para escribir un número real se emplean 64 bits (8 bytes): 1 bit para el signo (s) del número, 52 bits para la mantisa (m) y 11 bits para el exponente (exp).

Figura. Representación de un número real con precisión doble en el estándar 754.

Ejemplo 3: Si se quiere escribir el número 19,562510 en el estándar IEEE 754 con precisión doble, exponente en Exceso a 2n-1-1 y mantisa en Signo Magnitud con bit implícito, los pasos a seguir son:

Page 25:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

1º) Cambiar 19,562510 a base 2. Primero la parte entera:

y, a continuación, la parte fraccionaria:

De modo que,

19,562510 = 10011,10012

2º) Normalizar el número binario obtenido, colocando la coma decimal a la derecha del bit más significativo:

10011,10012 = 1,00111001 x 24

3º) Escribir el exponente en Exceso a 2n-1-1:

410 + (211-1 - 1)10 = 410 + (210 - 1)10 = 410 + (1024 - 1)10 =

= 410 + 102310 = 102710 = 10000000011EX. a 1023

4º) Establecer la mantisa utilizando bit implícito. Para ello, se cogen los ocho bits que están a la derecha de la coma (00111001) y el resto de la mantisa se rellena con ceros:

0011100100000000000000000000000000000000000000000000

5º) Expresar el número en el estándar IEEE 754 con precisión doble. En este caso, hay que tener en cuenta que el bit de signo vale 0, ya que, el número es positivo:

6º) Representar el número en hexadecimal:

Page 26:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

De tal forma que,

19,562510 = 10011,10012 = 1,00111001 x 24 = 4033A00000000000CFL (PRECISIÓN DOBLE)

Tanto en precisión doble como en precisión simple, existen algunos casos especiales que dependen de los valores del signo, del exponente y de la mantisa:

Figura. Casos especiales en el estándar IEEE 754 con precisión simple o doble.

Los dos últimos casos merecen especial atención, ya que, cuando todos los bits del exponente son ceros (00...0), esto quiere decir que no se está utilizando bit implícito. Si, además, la mantisa es todo ceros (00...0), el número representado es el cero (0), pero si la mantisa es distinta de todo ceros, el número que se está representando es muy pequeño, de tal forma que, el exponente valdrá -126 ó -1022, dependiendo de si el número está escrito en precisión simple o doble, respectivamente.

Ejemplo 4: Dado el número 805C0000CFL del estándar IEEE 754 con precisión simple, exponente en Exceso a 2n-1-1 y mantisa en Signo Magnitud con bit implícito, para averiguar a qué número representa en base 10, se pueden realizar los siguientes pasos:

1º) Convertir 805C000016 a base 2:

2º) Obtener los bits del signo, de la mantisa y del exponente:

Page 27:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

3º) Al observar que todos los bits del exponente son ceros (00000000) y la mantisa es distinta de todo ceros, se deduce que es un caso especial. Se está representado a un número muy pequeño sin bit implícito y, por tanto, el exponente es -126.

4º) En notación exponencial, puesto que en este caso no se utiliza bit implícito, la mantisa se escribe con un cero (0), seguido de la coma decimal (,) y de los bits de la mantisa (10111000000000000000000). En cuanto al signo del número, es negativo, ya que, el bit de signo es 1. Con todo ello, el número es:

-0,10111 x 2-126

5º) Expresar el número en base 10:

En las dos tablas siguientes se resumen los cálculos que hay que realizar para deducir el valor en base 10 de un número entero escrito en el estándar IEEE 754 con precisión simple o doble.

Figura. Cálculo del valor en base 10 de un número real escrito en el estándar IEEE 754 con precisión simple.

Figura. Cálculo del valor en base 10 de un número real escrito en el estándar IEEE 754 con precisión doble.

Page 28:  · Web viewIntroduccion. Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a

Los rangos de representación en el estándar IEEE 754 con precisión simple y doble, exponente en Exceso a 2n-1-1 y mantisa en Signo Magnitud con bit implícito, son los siguientes:

Figura. Rango de representación en el estándar IEEE 754 con precisión simple.

Figura. Rango de representación en el estándar IEEE 754 con precisión doble.

Ambos rangos de representación son discontinuos, es decir, no se pueden representar todos los números reales que existen entre dos cualesquiera de ellos. Esto es debido a que entre dos números reales cualesquiera siempre existen infinitos números, sin embargo, sólo se dispone de un número determinado de bits para representar a los números reales. Por esta razón, en las computadoras digitales no se pueden representar a todos los números reales. Por ejemplo, con precisión simple, alrededor del número cero (0) existen infinitos números reales, mayores que -2-126 y menores que 2-126, que no son representables. Gráficamente:

Figura. Números no representables en el estándar IEEE 754 con precisión simple.