Está en la página 1de 63

Unidad 2

Representación de datos
Índice temático Unidad Nº 2 – Representación de datos

2.1 Introducción ...............................................................................................41


2.2 Sistemas de numeración .............................................................................42
Historia de los sistemas de numeración .................................................................. 42
Sistemas de numeración posicional ......................................................................... 43
Teorema Fundamental de la Numeración ............................................................... 45
2.2.1. Conversión de sistemas de numeración ..................................................... 46
2.2.2. Conversiones entre decimal y binario ........................................................ 49
2.2.3. Conversiones entre decimal y hexadecimal ............................................... 52
2.2.4. Conversiones entre binario y hexadecimal ................................................ 54
2.2.5. Aritmética en los sistemas de numeración ................................................ 56
2.2.6. El complemento aritmético ........................................................................ 61
2.3 Representación de números ........................................................................65
2.3.1. Sistema de representación Binario Puro .................................................... 67
2.3.2. Sistema de representación Signo y módulo ............................................... 69
2.3.3. Sistema de representación Complemento a 1 ........................................... 71
2.3.4. Sistema de representación Complemento a 2 ........................................... 74
2.3.5. Representación en Exceso a M (representación sesgada) ......................... 78
2.3.6. Representación en Coma Flotante ............................................................. 79
2.3.7. Nociones de Error ....................................................................................... 90
2.3.8. Formatos de Longitud Variable: Decimal Codificado en Binario (BCD). ..... 93
2.4 Representación de texto .............................................................................95
2.4.1. Código ASCII ................................................................................................ 96
2.4.2. Código EBCDIC ............................................................................................ 97
2.4.3. Código Unicode........................................................................................... 98
2.5 Representaciones redundantes ...................................................................99
2.5.1. Detección de errores en la transmisión de datos....................................... 99
Bibliografía ........................................................................................................ 101
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Unidad 2
Representación de datos
Esquema de contenidos

Binario
Bases de Decimal
numeración Hexadecimal
Sistemas de Conversión entre
numeración bases
Operaciones
aritméticas

Coma fija sin signo o


binario puro
Enteros Coma fija signo y
Longitud
módulo
Fija
Complemento a 2
Representación Complemento a 1
de Datos Numéricos En exceso a M

n Coma Flotante
(Norma IEEE 754)
Reales
Formatos de BCD empaquetado
representación
BCD desempaquetado Longitud
Variable
ASCII
Alfanuméricos EBCDIC
UNICODE

Detección de Código de paridad


errores

2.1 Introducción
Básicamente, se puede decir que la computadora es una máquina que
procesa datos y que para realizar dicho procesamiento se debe tener en
cuenta cómo representar y codificar los datos internamente. Para ello es
menester conocer los procesos que transforman los datos externos a la
computadora en patrones de bits susceptibles de ser almacenados y
procesados por los elementos internos de la computadora.
Como ya se dijo en la Unidad 1, para hacer más fiable y menos
complejo el diseño de los componentes de la computadora, se utilizan dos

41
valores o estados posibles para las representaciones internas. Estos valores
conceptualmente se representan por cero (0) y uno (1) que corresponden a
dos estados posibles, por ejemplo a dos niveles de tensión eléctrica
claramente diferenciados.
En esta Unidad, se abordará la transformación de los datos “externos”
para ser representados como datos “internos” de tipo binario, los que luego
volverán a convertirse cuando los resultados se vuelquen al exterior. Se verá
en detalle el tratamiento de datos alfanuméricos y numéricos teniendo en
cuenta que el espacio de representación de las computadoras es finito, por
lo que se puede decir que no es posible representarlos a todos.
Los formatos de representación se pueden clasificar en cuatro tipos:
1. Representación de Textos: es la información usual que utilizan los
seres humanos empleando la ayuda de un alfabeto o conjunto de
caracteres. Algunos ejemplos de los códigos usados para esta
representación son: ASCII, EBCDIC y UNICODE.
2. Representación de Números: Los números necesitan una
representación adecuada para poder realizar operaciones
matemáticas, la cual está fundada en el sistema de numeración de
base 2. Serán desarrollados en esta unidad las representaciones sin
signo, signo y módulo, complemento a 1, complemento a 2, en exceso
a M, la representación en coma flotante de acuerdo a la norma IEEE
754 y el código BCD.
3. Representación de Sonidos: también denominadas señales de audio,
suelen ser de voz o música. Estas son captadas por un sensor que
transforma las señales originales en señales eléctricas analógicas, las
que finalmente son digitalizadas para poder ser tratadas por la
computadora.
4. Representación de Imágenes-Video: consiste en el tratamiento que
reciben las imágenes estáticas para poder ser representadas por una
computadora. La representación de imágenes dinámicas, tales como
las de video, suele realizarse como un conjunto sucesivo de imágenes
estáticas.

En esta unidad sólo trataremos las representaciones numéricas y


alfanuméricas, dejando para cursos posteriores la representación de
sonidos, imágenes y video.

2.2 Sistemas de numeración

Historia de los sistemas de numeración


Un sistema de numeración es un conjunto S de símbolos y el conjunto
de reglas que indican cómo se utilizan dichos símbolos para representar
números. Desde la antigüedad el Hombre ha ideado distintos sistemas para
numerar objetos. Algunos de los sistemas de recuento de culturas antiguas
se basaron en 5, 10 o 20 elementos, claramente relacionado con los cinco
dedos que el ser humano tiene en cada mano, o los 10 dedos de ambas, o
los 20 si se toman en cuenta manos y pies.
Como curiosidad, se puede citar el sistema de numeración de los
mayas. Ellos idearon un sistema de base 20 con el 5 como base auxiliar. La
unidad se representaba por un punto, el 5 era una raya horizontal a la que
añadían los puntos necesarios para representar 6, 7 8 y 9, para el 10 se
usaban 2 rayas y de la misma forma hasta el 20, con cuatro rayas.

42
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Figura 2.1 Sistema de numeración


maya.

En la actualidad el más extendido de los sistemas de numeración es el


sistema decimal de números arábigos, llamado así porque los árabes fueron
sus creadores.

Sistemas de numeración posicional


Todo sistema de numeración utiliza un conjunto S de símbolos
distintos entre sí que sirven para representar cantidades de acuerdo a
ciertas reglas. El tamaño de S es b, es decir, existe un número b de
símbolos o dígitos distintos.
En un sistema de numeración posicional, el número b de símbolos o
dígitos distintos del conjunto S se denomina base. Las reglas que se utilizan
en un sistema de numeración posicional consisten en que cada dígito
perteneciente a S tiene asociado un valor y el valor que representa una
cadena de dígitos se encuentra determinado por los valores individuales de
cada uno de ellos y por la posición que ocupan dentro de la cadena.
El ejemplo que nos resulta más familiar es el sistema de numeración
decimal, o sistema de base 10, lo cual significa que utiliza diez símbolos
distintos para representar cualquier cantidad. Con b = 2 se obtiene el
sistema binario, con b = 8 el sistema octal y con b = 16 el sistema
hexadecimal. Los símbolos utilizados en cada caso serán los siguientes:

𝑏=2 𝑆2 = { 0, 1 }
𝑏=8 𝑆8 = { 0, 1, 2, 3, 4, 5, 6, 7 }
𝑏 = 10 𝑆10 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
𝑏 = 16 𝑆16 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F }

Observe que en el caso de la base 16, para representar las cantidades


diez, once, doce, trece, catorce y quince con un solo símbolo, se recurre a
las primeras letras del alfabeto en mayúscula.
Para evitar confusiones, explicitaremos la base en la que se
encuentran expresadas las cantidades mediante un subíndice:

342610 3768,8910 1010002 101,0112 56738 1AB16 1BC,AA16

En el caso de valores hexadecimales, también se suele utilizar como


notación la letra H agregada al final de la cadena de dígitos. Es decir que la
cantidad hexadecimal 1BC,AA16 también puede indicarse como 1BC,AA H.
En la Figura 2.2 se muestra como ejemplo el número 832 y el detalle
de cómo interpretamos cada dígito para formar el número. En éste ejemplo
el 2 indica dos unidades, el 3 tres decenas, (esto es, treinta), y el 8 ocho
centenas (esto es, ochocientos). En este sistema, la posición del dígito indica
la potencia de 10 que lo afecta.

43
Figura 2.2 Sistema de numeración
decimal.

Es decir que se verifica:

832 = 8 × 𝟏𝟎𝟎 + 3 × 𝟏𝟎 + 2 × 𝟏
832 = 8 × 10𝟐 + 3 × 10𝟏 + 2 × 10𝟎

Observe que al descomponer el número, se identifican los factores


100, 10 y 1 que afectan a cada dígito. Estos factores se denominan pesos
porque otorgan a cada dígito su carácter como unidades, decenas o
centenas para formar el valor del número. Otra característica que puede
observar es que los pesos se expresan como potencias de la base (b=10),
donde el exponente depende del orden que ocupa el dígito en la cadena. El
orden i se define de derecha a izquierda, comenzando desde el cero. Así, las
unidades se ubican en el orden cero (i=0), las decenas se ubican en el orden
uno (i=1), las centenas en el orden dos (i=2) y así sucesivamente. De esta
manera, en el sistema decimal, dada una cadena de dígitos que representan
una cantidad, el peso de un dígito que ocupa el orden i será 10i.
Para ampliar este concepto a cualquier base b, hay que tener en
cuenta que la representación de un número entero N será una cadena de
dígitos pertenecientes a S, Por ejemplo:

Si el número tiene tres dígitos, la representación de N es: 𝑑2 𝑑1 𝑑0


Si el número tiene cuatro dígitos, la representación de N es: 𝑑3 𝑑2 𝑑1 𝑑0
Si el número tiene quince dígitos, la representación de N es: 𝑑14 𝑑13 … 𝑑1 𝑑0
Si el número tiene n dígitos, la representación de N es: 𝑑(𝑛−1) 𝑑(𝑛−2) . .. 𝑑1 𝑑0

El subíndice colocado en cada dígito resalta el orden que ocupa dicho


dígito dentro de la cadena.
Teniendo en cuenta que los pesos dependen de la base y del orden
(posición) que ocupan los dígitos en la cadena, los pesos en base b serán:

Peso del dígito 𝑑0 : 𝑏0


Peso del dígito 𝑑1 : 𝑏1
Peso del dígito 𝑑2 : 𝑏2
… …
Peso del dígito 𝑑𝑛−1 : 𝑏 𝑛−1

Luego, para formar el valor del número, cada dígito se multiplica por
su respectivo peso y se suman todos los productos:

𝑉𝑎𝑙𝑜𝑟(𝑁) = 𝑉(𝑁) = . . . 𝑑𝑛−1 × 𝑏 𝑛−1 + . . . + 𝑑1 × 𝑏1 + 𝑑0 × 𝑏 0

En estas expresiones, hemos resaltado los órdenes de cada dígito y los


pesos respectivos, pero en la práctica, es suficiente indicar la cadena de
dígitos y la base del sistema al que pertenece. Por ejemplo, la cantidad
ciento cincuenta y dos expresada en sistema decimal es 15210

44
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Teorema Fundamental de la Numeración


Generalizando la expresión anterior, el valor de un número N con n
dígitos enteros y m dígitos fraccionarios en el sistema de numeración de
base b se expresa de la siguiente manera:

𝑅𝑒𝑝𝑟𝑒𝑠𝑒𝑛𝑡𝑎𝑐𝑖ó𝑛 𝑑𝑒 𝑁𝑏 : 𝑑(𝑛−1) . .. 𝑑1 𝑑0 , 𝑑−1 𝑑−2 … 𝑑−𝑚

Nb : Número expresado en el sistema de numeración de base b.


b : Base del sistema de numeración. Número de símbolos permitidos en el sistema.
di : Dígito en la posición de orden i.
n : Cantidad de dígitos de la parte entera
, : Coma fraccionaria. Símbolo utilizado para separar la parte entera de un número
de su parte fraccionaria.

m : Cantidad de dígitos de la parte fraccionaria

Observe que debido a que el orden es descendente de izquierda a


derecha, los dígitos fraccionarios tienen órdenes negativos.

Luego, el valor del número 𝑁𝑏 es la suma de los productos 𝑑𝑖 × 𝑏 𝑖 ,


calculados para cada dígito, incluyendo la parte entera y la parte
fraccionaria, es decir:

𝑉(𝑁) = . . . 𝑑𝑛−1 × 𝑏 𝑛−1 + . . . + 𝑑1 × 𝑏1 + 𝑑0 × 𝑏 0 + 𝑑−1 × 𝑏 −1 + . . . + 𝑑−𝑚 × 𝑏 −𝑚

(𝑛−1)

𝑉(𝑁) = ∑ 𝑑𝑖 × 𝑏 𝑖
𝑖=−𝑚

Esta expresión se conoce como Teorema Fundamental de la


Numeración (TFN) y relaciona una cantidad expresada en un sistema de
numeración de base b cualquiera con la expresión de dicha cantidad en
sistema decimal.

En resumen: Las características comunes a todos los sistemas de


numeración posicionales, cualquiera sea su base son las siguientes:

 Consta de un número finito de símbolos individuales distintos


entre sí que forman la “base o raíz” del sistema (diez en el sistema
decimal, dos en el binario, etc.).
 Cada símbolo aislado o dígito representa una cantidad específica
de unidades.
 Existe un símbolo “cero” para indicar la cantidad nula.
 En un número compuesto por varios símbolos, un mismo símbolo
tiene un significado o “peso” distinto según su posición relativa en
el conjunto. La posición extrema derecha de la parte entera
corresponde a unidades.
 El peso de cada posición es una potencia de la base.
 Cada dígito dentro de un número tiene un orden y éste queda
determinado partiendo del orden "cero" desde la posición
inmediata a la izquierda de la coma. El orden crece hacia la
izquierda y decrece hacia la derecha.

45
 El valor relativo de un dígito en función de la posición que ocupa
es igual al producto 𝑑𝑖 × 𝑏 𝑖 , donde
d : valor intrínseco del dígito.
b : base del sistema de numeración.
i : orden del dígito.
 Finalmente, un número queda determinado por la sumatoria de
los valores relativos (𝑑𝑖 × 𝑏 𝑖 ) de los dígitos que forman el número.
(Teorema Fundamental de la Numeración)

2.2.1. Conversión de sistemas de numeración


Dado un número expresado en una base cualquiera, la conversión de
sistema de numeración consiste en encontrar la expresión de dicho número
en otra base. Por ejemplo, si se tiene el número 73,D510 y se desea
expresarlo en base 16, expresamos la conversión como:
73,510 → (..................)16

Describiremos a continuación los casos de conversión que relacionan


el sistema de numeración decimal con un sistema de numeración en otra
base distinta.

Conversión de base b a decimal


La conversión de una cantidad expresada en base b a su equivalente
en sistema decimal se realiza utilizando el Teorema Fundamental de la
Numeración.
El procedimiento a seguir es el siguiente:
 Identificar la cantidad de cifras de la parte entera y la parte
fraccionaria del número.
 Obtener los pesos de cada cifra. Los pesos se obtienen como la
base elevada al orden. A partir de la coma fraccionaria, los
pesos son ascendentes para la parte entera y descendentes para
la parte fraccionaria.
 Multiplicar cada cifra por el peso correspondiente.
 La sumatoria de los productos da como resultado la cantidad
expresada decimal.

Conversión de decimal a base b


El siguiente procedimiento para convertir un número N10 a su
representación en una base distinta de 10, distingue entre la parte entera y
la parte fraccionaria de N10.

 Parte Entera. Método de divisiones sucesivas


Para convertir la parte entera de N10 a la base b, se utiliza el método
de divisiones sucesivas por la nueva base b.
El método comienza dividiendo la parte entera de N10 por la base b. Se
utiliza la operación de división trabajando con cocientes enteros.

46
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Figura 2.3 Método de divisiones sucesivas para convertir una cantidad entera a base b.

Luego, el cociente obtenido se vuelve a dividir por b y se va repitiendo


la división con cada nuevo cociente. El método se aplica hasta que el
cociente sea cero. Al finalizar, la parte entera de N10 expresada en sistema
de base b se forma con los residuos de cada división realizada, tomándolos
en orden inverso al cual fueron obtenidos.
La Figura 2.4 muestra un ejemplo de conversión de un número entero
a base 2. El método puede realizarse utilizando la disposición tradicional
para dividir dos cantidades u ordenando las operaciones en forma tabular,
como ejemplifica la figura.

Figura 2.4 Conversión de decimal a binario de una cantidad entera por método de divisiones sucesivas.

47
 Parte fraccionaria. Método de multiplicaciones sucesivas
Para convertir la parte fraccionaria de N10 a la base b, se aplica el
método de multiplicaciones sucesivas. Este método consiste en multiplicar
la parte fraccionaria de N10 por la base b y luego repetir la operación con la
parte fraccionaria de cada resultado obtenido. El método se aplica hasta
que la nueva parte fraccionaria obtenida sea cero o resulte igual a una
anterior. Al finalizar, la parte fraccionaria de N10 expresada en sistema base
b se forma con la parte entera de los resultados de cada multiplicación,
tomándolos en el mismo orden en el que fueron obtenidos.
La Figura 2.5 muestra un ejemplo de conversión de decimal a binario
por multiplicaciones sucesivas.

Figura 2.5 Conversión de decimal a binario de una


cantidad fraccionaria por multiplicaciones sucesivas,

Observación: Es claro que si N10 es un número entero, sólo se aplicará


, y si N10 tiene parte entera nula, sólo se aplicará .

Como dijimos anteriormente, el método se repite hasta que la parte


fraccionaria del resultado sea cero, pero puede ocurrir que este resultado no
se produzca. Por eso, la otra condición de finalización es que la parte
fraccionaria calculada en una etapa del procedimiento sea igual a la parte
fraccionaria de alguna etapa anterior. La Figura 2.6 presenta un ejemplo de
conversión de decimal a binario donde se presenta esta situación. Puede
observarse que si no se interrumpe la aplicación del método, la secuencia
de dígitos binarios se repetiría indefinidamente, es decir que la expresión en
binario de N10 tiene parte fraccionaria periódica. Esta condición se indica en
la expresión del número con una línea sobre los dígitos que integran el
período.

48
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Figura 2.6 Ejemplo de conversión de decimal a binario con parte fraccionaria periódica.

Estos métodos de conversión pueden aplicarse entre la base decimal y


otra base cualquiera, pero solo nos enfocaremos en conversiones entre el
sistema decimal y los sistemas de numeración que resultan de mayor
interés en relación al funcionamiento de computadoras: el binario (base 2) y
el hexadecimal (base 16).

2.2.2. Conversiones entre decimal y binario


Los seres humanos utilizan el sistema decimal para expresar
cantidades, mientras que las computadoras trabajan en sistema binario,
por lo cual siempre es necesario recurrir a conversiones de decimal a
binario y viceversa. Conocer los procedimientos de conversión entre estos
sistemas de numeración es fundamental para comprender el
funcionamiento de una computadora.

Conversión de decimal a binario


La conversión de decimal a binario se realiza con los procedimientos
vistos para conversión de decimal a base b, utilizando b = 2. La Figura 2.7
muestra el desarrollo de la conversión de N10 = 153,6875, para lo cual se
aplica el método de divisiones sucesivas para la parte entera y el método de
multiplicaciones sucesivas para la parte fraccionaria.

49
Figura 2.7 Ejemplo de conversión de decimal a binario.

Los métodos de conversión adquieren formas simplificadas cuando se


trata con el sistema binario porque los dígitos posibles en este sistema son
el 0 y el 1. Esto significa que en la expresión del TFN, los dígitos 𝑑𝑖 del
número en binario sólo pueden ser 0 o 1, y por ende, cada producto 𝑑𝑖 × 𝑏 𝑖
sólo puede resultar nulo o igual al peso bi. Debido a esta característica, la
conversión de un número de decimal a binario, puede realizarse aplicando
métodos simplificados.

Parte entera. Método de restas sucesivas


En el caso de conversión de un entero decimal a binario, la
simplicidad del sistema binario permite aplicar el método de restas
sucesivas. Este método consiste en buscar el peso inmediatamente inferior
a la cantidad a convertir. Cuando se logra la aproximación con el peso de
orden i, significa que el dígito correspondiente a ese orden debe ser 1. Para
continuar, se calcula la diferencia entre la cantidad a convertir y el peso
encontrado, se repite la búsqueda de un peso que se aproxime a la
diferencia calculada y se realiza nuevamente la resta. El método se aplica
hasta obtener una diferencia igual a cero. Al finalizar, la expresión en
binario de la cantidad entera se forma escribiendo 1 para los órdenes i que
se utilizaron en la aproximación y 0 para los demás. La Figura 2.8 muestra
el procedimiento.

50
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Figura 2.8 Conversión de un número entero de decimal a binario por método de restas sucesivas.

Parte fraccionaria. Método de sumas sucesivas


En forma similar al caso de cantidades enteras, una cantidad
fraccionaria expresada en decimal se puede convertir a binario aplicando
un método basado en la simplicidad característica de la base 2: los dígitos
sólo pueden ser 0 y 1.
El método de sumas sucesivas consiste en acumular los pesos de
orden negativo, comenzando desde el orden -1. Si al considerar la suma del
peso de orden i, el valor acumulado no excede la cantidad fraccionaria, el
dígito di es 1. En caso contrario, cuando la suma del peso de orden i excede
a la parte fraccionaria, el dígito di es 0. El método se repite considerando
los órdenes descendentes siguientes, hasta que los pesos acumulados
igualen a la cantidad fraccionaria o se alcance una precisión deseada. Al
finalizar, la expresión en binario de la cantidad fraccionaria se forma con
los dígitos encontrados para cada orden.

51
Figura 2.9 Conversión de un número fraccionario de decimal a binario por método de sumas sucesivas.

Observación:
En algunos casos es necesario utilizar infinitos términos para que la
sumatoria alcance la parte fraccionaria. En este caso se debe truncar a un
cierto número de cifras, y por consiguiente no se puede alcanzar la
igualdad. Un caso particular de infinitas cifras es cuando existe un período
(grupos de cifras que se repiten).
Ejemplo: N10 = 0,6 = 0,1001 1001 1001...2

Conversión de binario a decimal


La conversión de sistema binario a sistema decimal se realiza
utilizando el Teorema Fundamental de la Numeración.

Pesos  25 24 23 22 21 20 2-1 2-2 2-3


Equivalente Decimal  32 16 8 4 2 1 0,5 0,25 0,125

Deseamos convertir el número binario (10110,01)2 → (........)10


Aplicando el TFN, tenemos que:
10110,012 = 1x24 + 0x23 + 1x22 + 1x21 + 0x20 + 0x2-1 + 1x2-2 = 22,2510

Ejemplo 2.1
Convertir a decimal los siguientes números binarios:
1101002 = 1 × 25 + 1 × 24 + 0 × 23 + 1 × 22 + 0 × 21 + 0 × 20 = 5210
0, 1012 = 1 × 2−1 + 0 × 2−2 + 1 × 2−3 = 0,5 + 0,125 = 0,62510

2.2.3. Conversiones entre decimal y hexadecimal


Aunque siempre es posible hacer la conversión entre decimal y
binario, las expresiones en binario pueden resultar muy largas y por ende,
difíciles de manejar en la práctica. Por ejemplo, la cantidad más alta que
puede representarse con un dígito decimal es 9, pero la versión en binario
de este número es 1001. Como puede apreciarse, el sistema binario
requiere más dígitos, lo cual resulta engorroso en la práctica. Para salvar

52
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

esta dificultad, se utiliza el sistema de numeración hexadecimal, que


requiere menos dígitos y a la vez, como veremos más adelante, permite
aplicar un método sencillo de conversión a la base 2.

Conversión de decimal a hexadecimal


La conversión de decimal a hexadecimal se realiza con los
procedimientos vistos para conversión de decimal a base b, utilizando b =
16. La Figura 2.7 muestra el desarrollo de la conversión de N10 = 153,6875,
para lo cual se aplica el método de divisiones sucesivas para la parte entera
y el método de multiplicaciones sucesivas para la parte fraccionaria. Se
deben tener en cuenta las equivalencias del 10 al 15 con sus respectivos
símbolos en sistema hexadecimal.

Figura 2.10 Conversión de un número de decimal a hexadecimal.

Conversión de hexadecimal a decimal


La conversión de sistema hexadecimal a sistema decimal se realiza
utilizando el Teorema Fundamental de la Numeración.

Ejemplo 2.2
Convertir a decimal el número A798C,1E16

Aplicando el TFN, tenemos:


A798C, 1E16 = A × 164 + 7 × 163 + 9 × 162 + 8 × 161 + C × 160 + 1 × 16−1 + E × 16−2
= (10) × 164 + 7 × 163 + 9 × 162 + 8 × 161 + (12) × 160 + 1 × 16−1 + (14) × 16−2
= 655360 + 28672 + 2304 + 128 + 12 + 0,0625 + 0,0546875
= 686476,117187510

53
2.2.4. Conversiones entre binario y hexadecimal
Como hemos descrito, una desventaja del sistema binario es que la
representación de valores requiere más dígitos que en los demás sistemas.
Por el contrario, el sistema hexadecimal es más compacto y proporciona un
mecanismo muy sencillo de conversión a sistema binario debido a que las
bases se encuentran relacionadas por la expresión 24 = 16. Esta relación
significa por una parte que con cuatro dígitos binarios pueden obtenerse 16
combinaciones distintas, pero como esta cantidad coincide con la base
hexadecimal, la relación también implica que para identificar un dígito
hexadecimal se requieren cuatro dígitos binarios, como muestra la Tabla
2.1.

Decimal Hexadecimal Binario


0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110 Tabla 2.1 Equivalencias en binario
15 F 1111 de los dígitos hexadecimales.

De la relación entre las bases resulta en un método muy simple de


conversión para aplicar en la práctica.
Debido a esta característica, en informática se adopta el sistema
hexadecimal para expresar ciertos datos, en lugar de hacerlo en binario. Tal
es el caso de las direcciones de memoria y la codificación de colores.

Conversión de hexadecimal a binario


Un número expresado en hexadecimal puede convertirse a sistema
binario aplicando los procedimientos vistos anteriormente. Para ello sería
menester tomar la cantidad expresada en hexadecimal y obtener su
equivalente en decimal para luego realizar la conversión de decimal a
binario. Sin embargo, al ser 𝑏 = 16 = 24 , puede hacerse la conversión más
sencilla de la siguiente forma:
Un digito hexadecimal se forma por un grupo de cuatro cifras binarias.
Luego, para convertir un número hexadecimal a su forma binaria,
directamente reemplazamos cada dígito hexadecimal por su equivalente
binario, utilizando cuatro cifras.

54
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Ejemplo 2.3
Convertir a binario el número 27A,616
Escribimos las equivalencias en binario para cada dígito hexadecimal:
N16 = 2 7 A , 6
0010 0111 1010 , 0110

Luego: 27A,616 = 0010 0111 1010, 01102


Omitiendo los ceros no significativos:
27A,616 = 10 0111 1010, 0112

Conversión de binario a hexadecimal


Dado que cada dígito hexadecimal equivale a un grupo de cuatro
dígitos binarios, para convertir un número binario a su forma hexadecimal
se particiona la expresión binaria en grupos de 4 dígitos, comenzando desde
la coma hacia la izquierda para la parte entera y desde la coma hacia la
derecha para la parte fraccionaria. Puede ocurrir que al realizar esta
división en grupos, los grupos de los extremos queden incompletos. En ese
caso se completan con cifras no significativas (ceros a la izquierda en la
parte entera y ceros a la derecha en la parte fraccionaria). Luego, cada
grupo se reemplaza por el dígito hexadecimal equivalente.

Ejemplo 2.4
Convertir a hexadecimal el número 1 1100,1011 0111 0112

Primero, dividimos al expresión en grupos de cuatro dígitos binarios a partir de la coma:


N2 = 1 1100,1011 0111 011

En este caso, completamos con ceros en la parte entera y fraccionaria:


N2 = 0001 1100,1011 0111 0110

Reemplazando cada grupo por su equivalente en hexadecimal:


N2 = 0001 1100,1011 0111 0110
1 C B 7 6

Luego: 1 1100,1011 0111 0112 = 1C,B7616

Observación:
Se invita al lector a verificar las operaciones de conversión de
bases entre los distintos sistemas de numeración utilizando las funciones
de ingeniería de Microsoft Excel. Algunas de ellas son:
BIN.A.DEC convierte de binario a decimal
DEC.A.HEX convierte de decimal a hexadecimal
OCT.A.HEX convierte de octal a hexadecimal

55
2.2.5. Aritmética en los sistemas de numeración
Las operaciones aritméticas de adición, sustracción, multiplicación y
división, son esencialmente igual en todos los sistemas de numeración
posicional. A los fines de esta materia sólo presentaremos las operaciones
aritméticas de suma y resta en los sistemas binario y hexadecimal.

Adición
Las reglas prácticas para sumar en base b son:
 Se ordenan los sumandos uno debajo del otro, alineados para operar con
los dígitos de igual orden.
 Se calcula en decimal la suma de los dígitos del mismo orden,
comenzando con los dígitos de orden menor.
 Si la suma es menor que b, el resultado expresado en base b es de un
solo dígito y su valor coincide con la suma decimal.
 Si la suma es mayor o igual que b, se debe recurrir a la posición de orden
siguiente para expresar el valor. Esto se hace restando b unidades al
resultado, teniendo en cuenta que cada vez que se resta la base se debe
aumentar en una unidad el dígito del orden siguiente (próxima columna
a la izquierda). La unidad que “se lleva” al orden siguiente se denomina
acarreo.

Sustracción
Como hemos planteado, la resta en base b se realiza de la misma
manera que en sistema decimal. Sólo se debe tener en cuenta, la siguiente
salvedad: Cuando el sustraendo es mayor al minuendo y es necesario “pedir
prestado” al dígito de la izquierda, se piden b unidades. Esta regla es la
misma para cualquier base, pero estamos tan familiarizados a su aplicación
en el sistema decimal que quizás perdemos de vista que en ese caso el
“pido” es de diez unidades.

2.2.5.1 Aritmética en el Sistema Binario


Adición: El algoritmo para sumar en el sistema binario es el mismo que se
utiliza en el sistema decimal, haciendo uso de las siguientes reglas básicas:

S1) 0 + 0 = 0
S2) 0 + 1 = 1
S3) 1 + 0 = 1
S4) 1 + 1 = 0 y se lleva 1 al orden siguiente.

La sumas 0+0, 0+1 y 1+0 son evidentes, pero la suma 1+1, cuyo
resultado en decimal es 2, debe escribirse en binario como 10. En este caso,
al resultado se le debe restar la base, por eso la regla expresa que “1+1=0 y
se lleva 1 al orden siguiente”.
La Figura 2.11 muestra los pasos realizados en una suma de ejemplo.

56
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Figura 2.11 Descripción de pasos de la operación de suma binaria.

Siempre que se realice la suma con dos operandos la suma binaria se


lleva a cabo según las reglas vistas y en caso de ocurrir un acarreo, éste
será unitario. Sin embargo, cuando se suman más de dos operandos, puede
ocurrir que el acarreo sea mayor que uno. La Figura 2.12 muestra un
ejemplo de cálculo de la suma de tres números. Puede observarse que el
primer acarreo se produce del orden -2 al orden -1 y es igual a uno. Al
continuar la operación en el orden 0, el resultado es 4 y al restar la base
dos veces resulta 4-2-2=0, que produce un resultado final 0 y genera un
acarreo de dos unidades al orden siguiente, ya que se pudo restar dos veces
la base. La figura también muestra el mismo cálculo realizado por partes,
haciendo sumas de dos operandos. Por simplicidad, los circuitos de la
Unidad Aritmético Lógica funcionan de esta manera, en base a circuitos
sumadores de dos operandos.

57
Figura 2.12 Ejemplo de suma binaria dividida en sumas parciales de dos operandos..

Sustracción: El algoritmo para restar en el sistema binario es el mismo que


se utiliza para restar en el sistema decimal, haciendo uso de las siguientes
reglas básicas:

R1) 0 - 0 = 0
R2) 1 - 0 = 1
R3) 1 - 1 = 0
R4) 0 - 1 = 1 tomando prestado 1 del orden siguiente.

Aclaremos esta última regla: En la diferencia 0 – 1, el 0 requiere tomar


una unidad “prestada” del orden siguiente. Al hacer esto, el 0 se incrementa
en b unidades, es decir 102. Luego, la diferencia queda 102 – 12, cuyo
resultado es 1. Así, la regla expresa que “0 - 1 = 1 tomando prestado 1 del
orden siguiente”.
La Figura 2.13 describe los pasos a realizar en una operación de resta
binaria. Observe que cuando en la operación ocurre que se debe “pedir
prestado” al orden siguiente, el dígito que “pide” se incrementa en dos
unidades y el dígito que “presta” se disminuye en uno.
En las computadoras, la Unidad Aritmético Lógica no utiliza un
circuito restador, sólo dispone de un circuito sumador. Esto es porque las
operaciones de resta se convierten en operaciones de suma y así, no hace
falta un circuito específico para restar, manteniendo el diseño de la UAL lo
más simple posible. La forma en que una resta puede resolverse mediante
una suma se describe más adelante.

58
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Figura 2.13 Descripción de pasos de la operación de resta binaria.

Ejemplo 2.5

Resolver la resta 1001,1112 – 11,10012


Aplicando los pasos descritos, la operación se resuelve de la siguiente manera:
1
0 10 10 0 10
1 0 0 1,1 1 1 0
– 1 1,1 0 0 1
1 1 0,0 1 0 1
Luego, el resultado es 110,01012

59
2.2.5.2 Aritmética en el Sistema Hexadecimal
Adición. Como planteamos anteriormente, la operación de suma se realiza
siguiendo las mismas reglas. En caso de base 16, se debe recordar las
equivalencias para los valores de 10 a 15 (dígitos A a F).
Aunque los pasos son los mismos que en base decimal, cuando la
suma de dos dígitos excede la base, el cálculo mental del dígito resultado
puede resultar confuso. Por ello, es conveniente explicitar la resta que se
realiza para calcular el acarreo.

Ejemplos: 8 3
+9 +5
17 Suma decimal 8 Suma decimal
-16 Modificación -0 Modificación
1 1 Suma en hexadecimal 8 Suma hexadecimal

Ejemplo 2.6

Resolver la suma C86816 + 72D916


Aplicando los pasos descritos, la operación se resuelve así:
1 1 1
C 8 6 8
+ 7 2 D 9
19 11 20 17
-16 -0 -16 -16
1 3 B 4 1
Luego, el resultado es 13B4116

Sustracción. Se aplican las mismas reglas. En caso de base 16, se debe


recordar las equivalencias para los valores de 10 a 15 (dígitos A a F).

Ejemplo 2.7

Resolver la resta C86816 – 72D916


Aplicando los pasos descritos, la operación se resuelve así:
21
7 5 24
C 8 6 8
– 7 2 D 9
5 5 8 15
5 5 8 F
Luego, el resultado es 558F16

60
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

2.2.6. El complemento aritmético


El complemento aritmético de un número, es lo que le falta a éste para
alcanzar el valor de referencia dado por bn, donde b es la base del sistema y
n es la cantidad de dígitos del número. Es decir que, dado un número N de
n dígitos, el valor de referencia para calcular su complemento es el número
formado por un 1 seguido de n ceros.
Cuando se utiliza bn como valor de referencia, el complemento se
conoce como complemento a la base. En el caso de b=2, el complemento a la
base es C2 (complemento a dos). En caso que sea b=10, el complemento a
la base es C10 (complemento a diez).
Formalmente se define que, dado un número N representado con n
dígitos en un sistema de numeración de base b, existe otro número, C(N),
denominado complemento a la base de N que cumple:

N + C(N) = bn

De la definición dada se obtiene la expresión para calcular el


complemento a la base de un número:

C(N) = bn − N

Ejemplo 2.8
Encontrar el complemento a la base de los siguientes números: 310 , 5310 , 1102 y 10012 ,
Identificando los valores de b y n en cada caso y aplicando la definición de complemento a la base, tenemos:
Por definición de complemento a la base: C(N) = bn – N
310  b = 10 ; n = 1, luego:
C10(310) = (101)10 – (3)10 = 1010 – 310 = 710
5310  b = 10 ; n = 2, luego:
C10(5310) = (102)10 – (53)10 = 10010 – 5310 = 4710
1102  b = 2 ; n = 3, luego:
C2(1102) = (1011)2 – (110)2 = 10002 – 1102 = 102
10012  b = 2 ; n = 4, luego:
C2(10012) = (10100)2 – (1001)2 = 100002 – 10012 = 1112

Otro valor utilizado como referencia para el cálculo del complemento


es (bn
– 1). En este caso el complemento se denomina complemento a la base
menos uno. Por ejemplo, si b=2, el complemento a la base menos uno es C1
(complemento a uno) y en caso que sea b=10, el complemento a la base
menos uno es C9 (complemento a nueve)

N + C ′ (N) = (bn − 1)

De igual manera que en el caso del complemento a la base, a partir de


la definición podemos obtener la expresión para calcular el complemento a
la base menos uno de un número:

C ′ (N) = (bn − 1) − N

61
Ejemplo 2.9
Encontrar el complemento a la base menos uno de los siguientes números: 310 , 5310 , 1102 y 10012 ,
Identificando los valores de b y n en cada caso y aplicando la definición de complemento a la base menos uno,
tenemos:
Por definición de complemento a la base menos uno: C’(N) = (bn – 1) – N
310  b = 10 ; n = 1, luego:
C9(310) =( (101)10 – (1)10 ) – (3)10 = (1010 – 110) – 310 = 910 – 310 = 610
5310  b = 10 ; n = 2, luego:
C9(5310) =( (102)10 – (1)10 ) – (53)10 = (10010 – 110) – 5310 = 9910 – 5310= 4610
1102  b = 2 ; n = 3, luego:
C1(1102) = ( (1011)2 – (1)10 ) – (110)2 = (10002 – 12) – 1102 = 1112 – 1102 = 12
10012  b = 2 ; n = 4, luego:
C1(10012) =( (10100)2 – (1)10 ) – (1001)2 = (100002 – 12) – 10012 = 11112 – 10012 = 1102

La utilidad del complemento radica en que tomando ciertas


precauciones, permite transformar restas en sumas. Así, en lugar de operar
la resta como A – B, se realiza la operación A + C(B). Las precauciones a
tener en cuenta al usar complemento son:
 En complemento a la base: el acarreo final se descarta.
 En complemento a la base menos uno: el acarreo final se suma
al resultado.

Ejemplo 2.10

Realizar la operación 8 – 3 expresada en decimal utilizando complemento a la base (complemento a diez).


Como el número se encuentra representado con un solo dígito, n = 1. Luego:
C10(3) = 101 – 3 = 10 – 3 = 7
La operación 8 – 3 utilizando complemento diez es:
8 – 3 = 8 + C10(3) = 8 + 7 = 5 (En el resultado final se descarta el acarreo producido en 8 + 7 = 15)

Ejemplo 2.11

Resolver la operación 8 – 3 expresada en decimal trabajando con complemento a la base menos uno
(complemento a nueve).
Como el número se encuentra representado con un solo dígito, n = 1. Luego:
C9(3) = (101 – 1) – 3 = 9 – 3 = 6
La operación 8 – 3 utilizando complemento a nueve es:
8 – 3 = 8 + C9(3) = 8 + 6 = 4 + 1 = 5 (En el resultado final se suma el acarreo producido en 8 + 6 = 14)

Esta característica de convertir restas en sumas es de sumo interés en


el caso de las computadoras, ya que permite reducir la complejidad de los

62
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

circuitos de la Unidad Aritmético Lógica al no requerir circuitos específicos


para restar.
Por otra parte, nótese que si se considera el valor del complemento de
N, lo que le falta a éste para igualar el valor de referencia, es N. En otras
palabras, el complemento del complemento de N es igual a N. Esta
propiedad permite obtener el número original a partir de su complemento y
es válida tanto para el complemento a la base como para el complemento a
la base menos uno.

En complemento a la base:
C(C(N)) = bn − C(N)
C(C(N)) = bn − (bn − N)
C(C(N)) = bn − bn + N)
C(C(N)) = N

En complemento a la base menos uno:


C(C(N)) = (bn − 1) − C(N)
C(C(N)) = (bn − 1) − ((bn − 1) − N))
C(C(N)) = (bn − 1) − (bn − 1) + N)
C(C(N)) = N

En resumen:
 El complemento de un número es la diferencia entre dicho
número y otro dado como referencia.
 Los valores de referencia bn y (bn – 1) definen el complemento a la
base y el complemento a la base menos uno, respectivamente.
 Para representar un número negativo se puede utilizar el
complemento de ese número a la base o a la base menos uno en
el sistema de numeración utilizado.
 La utilidad del complemento radica en que permite transformar,
restas en sumas, con ciertas precauciones.
 El complemento del complemento de N, es N.

Complementos en base binaria


Dado que las computadoras son dispositivos digitales binarios, la
representación de números utiliza b=2. Así, nos centraremos en las
características de las operaciones complemento a la base y complemento a
la base menos uno cuando b=2, es decir, Complemento a 2 y Complemento
a 1.

Características del Complemento a 1


a) Analizando el valor de referencia del Complemento a 1, (2n – 1), puede
observarse que se trata de una cadena formada por n unos. Al aplicar la
definición, la operación C1(N) consiste en restar el número N al valor de
referencia, esto es: C1(N) = (2n –1) – N. Al realizar este cálculo, debido a
que el valor de referencia es una cadena de n unos, el resultado es una
cadena de bits que respecto del número N original, tiene intercambiados
los unos por ceros y los ceros por unos, denominado complemento lógico.
Esta característica otorga un método práctico muy sencillo para hallar el

63
Complemento a 1 de un número N: Para realizar la operación C1(N) en
forma práctica, se expresa N en binario y luego se escribe el
complemento lógico bit a bit.

Figura 2.14 Cálculo por definición y método práctico para encontrar C1(N) como complemento lógico bit a bit de N.

La Figura 2.14 muestra ejemplos de la operación Complemento a 1 con


n=4 y n=8. Puede observarse que en ambos casos se cumple que el valor
de referencia es una cadena de n unos y que C1(N) es siempre el
complemento lógico de N.
b) Las operaciones de adición y sustracción en Complemento a 1 son algo
más complicadas que en Complemento a 2. Lo que se gana simplificando
el cálculo del complemento, se complica al realizar sumas y restas.
c) Se puede demostrar que el Complemento a 1 del Complemento a 1 de un
número es igual al número, es decir: C1(C1(N) = N. Esta propiedad es
útil para obtener el número original a partir de su complemento a 1.

Demostración:
𝐶1 (𝐶1 (𝑁)) = 𝐶1 ((2𝑛 − 1) − 𝑁) se reemplazó C1(N) por su definición 2n - N
𝑛 𝑛
𝐶1 (𝐶1 (𝑁)) = (2 − 1) − (2 − 1 − 𝑁) se reemplazó C1 por su definición
𝑛 𝑛
𝐶1 (𝐶1 (𝑁)) = 2 − 1 − 2 + 1 + 𝑁 se quitan paréntesis y cambian los signos
Luego: 𝐶1 (𝐶1 (𝑁)) = 𝑁

Características del Complemento a 2:


a) La operación C2(N) en forma práctica se puede calcular como: C2(N) =
C1(N) + 1. Esto indica que para encontrar el C2(N), se puede obtener
primero el C1(N) y luego añadirle 1.
Otro método práctico para realizar la operación Complemento a 2 es la
siguiente: Dada la expresión en binario de N, se copian los bits
tomándolos de derecha a izquierda, hasta encontrar el primer uno, se
copia ese uno y a partir de ahí se cambian ceros por unos y unos por
ceros, hasta recorrer la cadena completa.

64
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Figura 2.15 Cálculo por definición y métodos prácticos para encontrar C2(N).

b) Se puede demostrar que el Complemento a 2 del Complemento a 2 de un


número es igual al número, es decir: C2(C2(N) = N. Esta propiedad es
útil para obtener el número original a partir de su complemento a 2.

Demostración:
𝐶2 (𝐶2 (𝑁)) = 𝐶2 (2𝑛 − 𝑁) se reemplazó C2(N) por su definición 2n - N
𝐶2 (𝐶2 (𝑁)) = 2𝑛 − (2𝑛 − 𝑁) se reemplazó C2 por su definición
𝐶2 (𝐶2 (𝑁)) = 2𝑛 − 2𝑛 + 𝑁 se quitan paréntesis y cambian los signos
Luego: 𝐶2 (𝐶2 (𝑁)) = 𝑁

2.3 Representación de números


Todo dato que deba ser almacenado o procesado por una computadora
debe ser representado en forma binaria. En Informática, la práctica
corriente para la representación de datos consiste en utilizar un número fijo
de n bits y asignar a cada uno de los datos a representar una combinación
particular formada por los n bits. Este proceso se denomina codificación.
Así, existe la codificación de caracteres, codificación de números,
codificación de imágenes, etc. Veremos a continuación distintos sistemas de
representación de números.
La siguiente tabla resume la clasificación de los números reales:

65
Subconjunto Descripción Ejemplos
Números que designan la cantidad de
elementos de un conjunto. No tienen parte
Naturales 0, 1, 2, 3, 4, ...
fraccionaria, son los “enteros positivos”

Números sin parte fraccionaria, positivos y


Enteros negativos. ... -2,-1,0,1,2, ...

Números con parte fraccionaria periódica o


no, que pueden expresarse como cociente de 3 5 1 1
Racionales , . , ,…
dos enteros. 4 2 3 2

Números con parte fraccionaria que no


pueden expresarse como cociente entre dos
Irracionales √2, √3, 𝜋, 𝑒, … Tabla 2.2 Clasificación
enteros.
de números reales.

La necesidad de representar números de los distintos subconjuntos


mostrados en la Tabla 2.2 ha dado lugar a distintos sistemas de
representación. Algunos aspectos generales de cualquier sistema de
representación de números son:
 Cualquier subconjunto de la clasificación de números reales (naturales,
enteros, racionales e irracionales) tiene infinitos elementos, pero el
espacio material de representación de las computadoras es finito, por lo
que no es posible representar a todos los elementos de un conjunto
infinito. Además, estrictamente hablando, todo número irracional será
irrepresentable, puesto que al tener infinitos dígitos fraccionarios, sería
necesario un número infinito de bits para poder representarlo.
 Como a partir de un conjunto de n bits se pueden obtener 2 n
combinaciones distintas, entonces con n bits sólo podremos codificar
(representar) 2n números distintos.
 Siempre existen dos valores extremos, un mínimo y máximo, que acotan
el conjunto de números representado. Se llama rango de representación
al intervalo comprendido entre el menor y el mayor de los números
representados.
 En el caso de los números racionales e irracionales, la limitación del
número de combinaciones obtenidas a partir de n bits hace que sólo se
puedan representar una cantidad limitada de dígitos fraccionarios. Los
demás dígitos deberán omitirse aplicando redondeo o truncamiento, por
lo que la representación tendrá una determinada precisión.
 En el caso de números con signo, normalmente hacemos la distinción
entre positivos y negativos con los símbolos “+” y “–”, pero la codificación
sólo se expresa con unos y ceros, por lo cual se debe adoptar alguna
regla para representar el signo.

Los sistemas de representación de números pueden clasificarse en dos


grandes grupos, de acuerdo a si el dato a almacenar será codificado con
una longitud de bits fija o variable.

Formatos de longitud fija (Información numérica)


- Coma fija
- Sin signo o Binario puro (Números naturales)
- Signo y modulo (Enteros)

66
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

- Complemento a 1 (Enteros)
- Complemento a 2 (Enteros)
- En exceso a M (Enteros)
- Coma flotante (Racionales e Irracionales)

Formatos de longitud variable


- Códigos Decimales BCD (Información numérica)
-Desempaquetado
-Empaquetado
- Códigos Alfanuméricos (ASCII, EBCDIC, UNICODE) (Información
alfanumérica)

De esta manera, los formatos de longitud fija son aquellos que utilizan
una cantidad determinada de bits asignados para la representación.
Los formatos de longitud variable, como su nombre lo indica, tendrán
un tamaño variable que dependerá de la cantidad de caracteres a
representar, correspondiéndole en la mayoría de los casos 1 byte/carácter.

2.3.1. Sistema de representación Binario Puro


Este sistema permite representar números naturales (números enteros
sin signo). Se basa en el sistema posicional de base 2, sin parte fraccionaria
o binario puro. Los n bits disponibles para la representación forman una
cadena de dígitos binarios (dn-1  d1d0)2 y el valor representado por dicha
cadena se obtiene a partir del TFN:
(𝑛−1)
𝑛−1 𝑛−2
𝑉(𝑁) = . . . 𝑑𝑛−1 × 𝑏 + 𝑑𝑛−2 × 𝑏 + . . . + 𝑑1 × 𝑏 + 𝑑0 × 𝑏 = ∑ 𝑑𝑖 × 𝑏 𝑖
1 0

𝑖=0

Puede ocurrir que la conversión a binario de N no ocupe todos los


bits disponibles para la representación. En tal caso, se deben completar con
ceros a la izquierda hasta ocupar los n bits.

Ejemplo 2.12

Representar el número entero decimal 27 en binario puro de 8 bits.


Buscamos el equivalente en binario del número:
2710 = 1 10112
Luego, para representar el número en binario puro de 8 bits, se deben agregar los ceros necesarios a la
izquierda hasta completar las posiciones correspondientes a la longitud de la representación:
2710 = 0001 1011 en Binario puro de 8 bits

Rango de representación
En binario puro de n bits, el menor número corresponde a la
combinación en la cual todos los bits son 0, que de acuerdo al TFN,
representa al número cero. El mayor número corresponde a la combinación
que tiene todos los bits igual a 1, cuyo valor es 2n –1. Por lo tanto, el rango
para este tipo de representación R = [0, 2n –1].

67
Ejemplo 2.13

Calcule el número máximo, el mínimo y el rango de representación en binario puro de 8 bits.


La cantidad de combinaciones es 28 = 256. Como en binario puro o natural no se representan números
negativos, se asignan las combinaciones a los números positivos a partir del cero. De esta manera:
El número mínimo será: 0 es decir 0000 0000
El número máximo será: 255 es decir 1111 1111
Luego, el rango de representación con 8 bits es R = {0, 255}

Ejemplo 2.14

Representar el número entero decimal 47 en binario puro de 8 bits.


El rango de representación de binario puro de 8 bits es R = {0, (28-1)} = {0,255}. Como el número 4710 pertenece
al rango de representación, buscamos el equivalente en binario:
4710 = 10 11112
Luego, para representar el número en binario puro de 8 bits, se deben agregar los ceros necesarios a la
izquierda hasta completar las posiciones correspondientes a la longitud de la representación:
4710 = 0010 1111 en Binario puro de 8 bits

Al operar con cantidades representadas en este sistema, aparecen las


siguientes dificultades:
a) El resultado de la operación de suma de números de n bits puede
exceder el rango de representación. En tal caso, se necesitarán n+1 bits
para la representación del resultado. Esto ocurre cuando al sumar los
operandos se produce un acarreo al bit n+1, denominado cn+1. En este
caso se dice que ocurre un desbordamiento, puesto que el bit n+1 no
“cabe” en los bits disponibles para almacenar el resultado. Como el
acarreo no puede ser incluido en los n bits disponibles, queda eliminado
y se obtiene un resultado incorrecto. Por ejemplo, para una
representación de cuatro bits (n = 4) se podría producir una situación
como la que se muestra:
1101
+ 1010
10111
cn+1

En este ejemplo, el resultado de la operación necesita de un quinto bit


para su representación, pero como el sistema de representación utiliza
solamente cuatro bits, el resultado queda 0111, lo cual es erróneo. La
Unidad Aritmético Lógica (encargada de realizar las operaciones de
suma) debe estar provista de un mecanismo que detecte esta
eventualidad y pueda darse aviso al usuario sobre este tipo de error.

b) Similarmente, cuando se realiza un producto también existe la


posibilidad de desbordamiento. Téngase en cuenta que el producto de
dos cantidades de n bits puede necesitar hasta 2n bits para su
representación.

68
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

c) Dado que en el Sistema de Representación Binario Puro no se pueden


representar números negativos, antes de restar A – B, se debe
comprobar que A  B.

En resumen, el Sistema de Representación Binario Puro de n bits:


 Permite la representación de números naturales (enteros positivos).
 La realización de operaciones aritméticas se encuentra limitada.
 El rango de representación al utilizar n bits es R = {0, 2n –1}.

2.3.2. Sistema de representación Signo y módulo


Este sistema es una modificación del anterior, consistente en reservar
un bit para indicar el signo. Así, de los n bits disponibles, uno indica el
signo y los (n-1) bits restantes representan el módulo o magnitud del
número expresado en binario. La magnitud o módulo es el valor absoluto
del número.
Normalmente, se reserva el bit de la izquierda para el signo. Este bit se
denomina bit de signo, sus valores son S = 0 para números positivos y S = 1
para números negativos.
La
Figura 2.16 muestra un esquema de la representación de un número
N10 utilizando el formato Signo y Módulo de n bits de longitud.

Figura 2.16 Representación en Signo y


Módulo de n bits.

Ejemplo 2.15

Representar los siguientes números decimales en signo y módulo de 8 bits:


4710 , -4710 , 10910 y -5310
Para encontrar la representación en signo y módulo se debe obtener la expresión en binario del valor absoluto
del número y luego agregar el bit de signo, completando la cantidad de dígitos disponibles para la
representación:
+4710 : 4710 = 10 11112 , luego +4710 = 0010 1111 en signo y módulo de 8 bits
-4710 : 4710 = 10 11112 , luego -4710 = 1010 1111 en signo y módulo de 8 bits
+10910 : 10910 = 110 11012 , luego +10910 = 0110 1101 en signo y módulo de 8 bits
-5310 : 5310 = 11 01012 , luego -5310 = 1011 0101 en signo y módulo de 8 bits

69
Rango de representación
Como en Signo y Módulo se reserva el primer bit para el signo, de la
longitud total n solamente quedan (n-1) bits para representar el módulo.
Con (n-1) bits se pueden generar 2n-1 combinaciones.
La Figura 2.17 muestra cómo se representan los números en sistema
Signo y Módulo de n bits. Para los enteros positivos, el bit de signo toma el
valor S=0 y el rango es R = {+0, (2n-1 – 1)}. De manera similar, los números
negativos se representan con S=1 y el rango es R = {–(2n-1 – 1), –0}.
Por tanto, el rango de representación en Signo y Módulo de n bits es
R = {–(2n-1 – 1), (2n-1 – 1)}.

Figura 2.17 Rango de


representación en Signo y
Módulo de n bits.

Ejemplo 2.16

Calcular el número máximo, el mínimo y el rango de representación que existe trabajando en Signo y Módulo
de 8 bits.
La cantidad de números negativos es: 2n-1 = 28-1 = 128 (se considera un bit menos por el de signo). El mismo
razonamiento es válido para los números positivos.
El rango para los negativos es: desde -(2n-1 - 1) = -(28-1 - 1) = -127 hasta -0 (se descarta una combinación para el
cero negativo)
El rango para los positivos es: desde +0 hasta (2n-1 - 1) = (28-1 - 1) = 127 (se descarta una combinación para el
cero positivo).
Luego: El número mínimo es: -127 es decir 11111111
El número máximo es: 127 es decir 01111111
El rango de representación es R = {-127, 127}

Nótese que en Signo y Módulo, el cero tiene doble representación,


explicitadas en la Figura 2.17 como +0 y -0.
 Cuando S = 0 el cero se representa como 0 = 00000...0000
 Cuando S = 1 el cero se representa como 0 = 10000...0000
Esta ambigüedad en la representación del cero a veces genera
dificultades.

70
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Dificultades que presenta el sistema Signo y módulo:


 En el caso de sumas y restas, la operación a realizar depende del
signo de los operandos. Antes de realizar alguna de estas operaciones
se debe analizar el signo de los operadores, ya que por ejemplo, si la
operación es una suma en la cual uno de los operadores es negativo,
se ha de cambiar la operación por una resta.
 Las operaciones de multiplicación y división se tratan con menos
dificultad que las sumas y restas, puesto que se opera, por un lado,
con las magnitudes y, por otro, con los signos.
 Existe la posibilidad de desbordamiento al operar con sumas, restas
y multiplicaciones.
 La ambigüedad de representación del cero complica la detección de
números negativos. Si se analiza solamente el bit de signo, la cadena
1000..0 se interpreta como un número negativo, lo que no es
correcto, puesto que el cero siempre es positivo.

En resumen…
En el Sistema de Representación Signo y Módulo de n bits:
 Se pueden representar números enteros positivos y negativos.
 El primer bit indica el signo del número.
 El rango de representación es simétrico: R = {–(2n–1 – 1) , (2n–1 – 1)}.
 Existen dos representaciones para el cero: 0000... y 1000…
 Para representar un número N en Sistema de Representación Signo y Módulo, el bit de mayor orden
(bit de signo) adopta el valor 0 o 1 según el signo de N y los (n-1) bits restantes representan el valor
absoluto de N en binario puro.
 La realización de operaciones aritméticas presenta dificultades.

2.3.3. Sistema de representación Complemento a 1


El Sistema de Representación Complemento a 1 (SRC1) se basa en
representar los números positivos en Binario Puro y los números negativos
mediante complemento a uno. El Complemento a 1 es el caso particular de
complemento a la base menos uno cuando b = 2.
Dada una longitud de n bits, el bit de la izquierda (bit dn-1) permite
determinar el signo del número, de la misma forma que en el sistema Signo
y módulo: el valor 0 indica que el número es positivo y el valor 1 indica que
el número es negativo.
 Si el número es positivo, se representa el número en binario puro.
 Si el número es negativo, se representa mediante el complemento a uno
del correspondiente número positivo.

Es importante remarcar que no debe confundirse el SRC1 con la


operación Complemento a 1. El SRC1 es un convenio para representar
números enteros con signo, el cual utiliza la operación complemento a uno
para representar los números enteros negativos. Así, el SRC1, utiliza la
operación C1(N) para representar el número negativo –N. Dado que en este

71
sistema un número negativo –N se representa con el Complemento a 1 de
+N, la operación C1(N) puede interpretarse como un cambio de signo.
Recordando lo descrito en la definición de la operación Complemento a
1, la referencia para hallar el complemento es el valor (2n – 1). El cálculo
puede hacerse por definición: C1(N) = (2n – 1) – N o aplicando el método
práctico. El método práctico para hallar el complemento a uno de un
número N consiste en expresar N en binario con n bits y luego cambiar bit a
bit los ceros por unos y los unos por ceros.

Ejemplo 2.17

Representar los siguientes números decimales en SRC1 de 8 bits:


4710 , -4710 , 10910 y -5310
+4710 : 4710 = 0010 1111 en B. Puro de 8 bits. Luego +4710 = 0010 1111 en SRC1
-4710 : 4710 = 0010 1111 en B. Puro de 8 bits. Luego -4710 = 1101 0000 en SRC1
+10910 : 10910 = 0110 1101 en B. Puro de 8 bits. Luego +10910 = 0110 1101 en SRC1
-5310 : 5310 = 0011 0101 en B. Puro de 8 bits. Luego -5310 = 1100 1010 en SRC1

Rango de representación
Dada una longitud n, los números positivos se representan con el bit
dn-1 igual a 0 y con la magnitud en Binario Puro. Por tanto, este sistema
permite representar números positivos desde 0 hasta (2n-1 –1).
Por otro lado, los números negativos se representan mediante su
Complemento a 1. Para determinar el rango de los números negativos hay
que calcular el mínimo y el máximo representable.

Cálculo del mínimo negativo: Corresponde a la expresión del complemento


en la cual el bit dn-1 es igual a 1 y el resto de los bits son ceros, es decir
10….00. En este caso el valor del complemento es 2n-1, por lo tanto, el
número es:
N10 = (2n – 1) – 2n-1 = 2n – 2n-1 – 1 = 2n-1 – 1
Entonces: Valor mínimo negativo = –(2n-1 – 1)

Cálculo del máximo negativo: El máximo negativo se presenta cuando el


complemento tiene los n bits en 1. En este caso el valor del complemento es
(2n –1), por lo tanto el número es:
N10 = (2n –1) – (2n –1) = 0
Entonces: Valor máximo negativo = –0

Por lo tanto, el rango negativo es [–(2n-1 – 1) , –0)]

Luego, el rango completo del SRC1 de n bits es:


R = {–(2n-1 – 1) , (2n-1 – 1)}

El rango de representación es simétrico, pero el cero tiene dos


representaciones 0000...00 y 1111...11. Esta doble representación puede
ocasionar ambigüedades, ya que la cadena de bits 1111...11 indica un valor
negativo, pero por definición, el cero es positivo.

72
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Ejemplo 2.18

Calcular el número máximo, el mínimo y el rango de representación que existe trabajando en sistema de
representación Complemento a 1 de 8 bits.
Al igual que en sistema Signo y módulo, se debe discriminar el estudio del rango en números negativos y
positivos.
La cantidad de combinaciones para números negativos es: 2n−1 = 28−1 = 27 = 128 (se considera un bit
menos por el de signo). Esto también es válido para los números positivos.
El rango para números negativos es:
Desde: – (2n−1 − 1) = −(28−1 − 1) = −(27 − 1) = −(128 − 1) = −127
Hasta: –0 (se utiliza una combinación para el cero)
El rango para los números positivos es:
Desde: +0
Hasta: (2n−1 − 1) = (27 − 1) = (128 − 1) = 127 (se utiliza una combinación para el cero)
El número mínimo es: -127 es decir 1000 0000
El número máximo es: 127 es decir 0111 1111
Luego, El rango en SRC1 de 8 bits es R = {–127, 127}

Dado un número entero N, la regla práctica para encontrar su


representación en Sistema de Representación Complemento a 1 de n bits
consiste en:
 Determinar si N pertenece al rango de representación de n bits. Si el
valor excede el rango, el número no es representable.
 Encontrar la representación en binario puro del módulo de N, utilizando
n bits.
 Si el número es positivo, el equivalente de N en SRC1 de n bits es la
expresión en Binario Puro de N, utilizando n bits.
 Si el número es negativo, se calcula el Complemento a 1 de N (positivo).
Se puede calcular aplicando la definición de complemento a la base
menos uno o invirtiendo bit a bit la expresión en Binario Puro de N,
utilizando n bits

73
Ejemplo 2.19

Representar el número -910 utilizando SRC1 de 8 bits.


Dado que el número es negativo, se debe calcular el complemento a 1 del número. Aplicando la definición, el
complemento a 1: C1(N) = (2n – 1) – N
El minuendo se calcula de la forma: 28 – 1 = 255, es decir 1111 11112
La representación binaria del 9 con n = 8 bits es: 0000 10012
La resta resulta:
1111 1111
– 0000 1001
1111 0110
Luego: -910 = 1111 0110 en SRC1 de 8 bits.
Obsérvese que el Complemento a 1 del número se puede obtener complementando bit a bit la expresión en
binario de n bits de dicho número.

Nota: La separación de los bits en cuartetos es al sólo efecto de


una mejor visualización.

En resumen…
En el Sistema de Representación Complemento a 1 de n bits:
 Se pueden representar números enteros positivos y negativos.
 El rango de representación es simétrico: R = {–(2n–1 – 1) , (2n–1 – 1)}.
 Existen dos representaciones para el cero.
 El primer bit indica el signo del número, pero forma parte del mismo.
 Si N es positivo se expresa en binario puro, si es negativo se representa mediante el C1(N)
 El Complemento a 1 de un número N por definición es: C1(N) = (2n – 1) – N.
 Como método práctico, C1(N) se puede obtener cambiando 0 por 1 y 1 por 0 en la expresión binaria de
N (complemento lógico).
 Para obtener el número original N a partir de su Complemento a 1, se calcula el complemento del
complemento: C1(C1(N)) = N
 Se pueden realizar operaciones aritméticas con mayor simplicidad que en Signo y Módulo.

2.3.4. Sistema de representación Complemento a 2


El Sistema de Representación Complemento a 2 (SRC2) consiste en
representar los números positivos en Binario Puro y los números negativos
mediante el complemento a dos del número. La mayoría de las
computadoras utilizan este sistema de representación.

74
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

En este sistema, dada una longitud de palabra n, el bit de la izquierda


indica el signo del número. En forma similar al sistema Signo y Módulo, el
valor 0 de éste bit indica que el número es positivo y el valor 1 indica que el
número es negativo. Aunque muchas veces se hace referencia a este bit
como bit de signo, no es un bit separado de la magnitud del número, como
ocurre en el caso de la representación de Signo y Módulo y cuando se
realizan las operaciones aritméticas en complemento a 2, se trabaja con los
n bits como conjunto indivisible.
 Si el número es positivo, se representa el número en Binario puro.
 Si el número es negativo, se representa el Complemento a 2 del
correspondiente número positivo.

De manera similar al SRC1, no debe confundirse el SRC2 con la


operación Complemento a 2. El SRC2 es un convenio para la representación
de enteros con signo que utiliza la operación Complemento a 2 para
representar los números negativos.

Ejemplo 2.20

Representar en SRC2 el número –5010 , utilizando 8 bits.


En primer lugar, hay que convertir a binario el valor absoluto del número:
5010 = 11 00102
Aplicando la definición de complemento a 2 con 8 bits
C2(5010) = 28 – 5010
C2(11 0010) = 1 0000 0000 – 11 0010
1 0000 0000
– 11 0010
1100 1110
Luego: C2(5010) = 1100 1110

Nota: La separación de los bits en cuartetos es al sólo efecto de


una mejor visualización.

Rango de representación
Como se expuso anteriormente, en el SRC2, los números positivos se
representan en binario puro. Teniendo en cuenta que en tal caso el bit dn-1
correspondiente al dígito de mayor orden ha de ser 0, este sistema permite,
por tanto, representar los enteros positivos desde 0 hasta (2n-1 – 1) es decir,
el rango positivo es R+ = {0 , (2n-1 – 1)}
Por otro lado, los números negativos se representan en complemento a
dos, que se calcula restando el valor de referencia 2n menos la magnitud del
número negativo a representar. Para determinar el rango de los números
negativos hay que calcular el mínimo y el máximo representable.

Cálculo del mínimo negativo: Corresponde a la expresión en complemento a


2 en la cual el bit dn-1 es igual a 1 y el resto de los bits son ceros, es decir
10….00. En este caso el valor del complemento es 2n-1, por lo tanto el valor
del número es:
N10 = C2(C2(N))= 2n – 2n-1 = 2n-1

75
Entonces: Valor mínimo negativo = –(2n-1)

Cálculo del máximo negativo: Es cuando en la expresión en complemento a


2, los n bits están en 1. En este caso el valor del complemento es 2n –1, por
lo tanto el valor del número es:
N10 = C2(C2(N)) = 2n – (2n – 1)= 1
Entonces: Valor máximo negativo = –(1)

Por lo tanto, el rango negativo es R– = {–(2n-1) , –1}

Luego, el rango completo es R = {–(2n-1) , (2n-1 –1)}

Nótese que, en este caso, no existe el -0, puesto que el complemento a


2 de cero es 2n-1.

Ejemplo 2.21

Calcular el número máximo, el mínimo y el rango de representación que existe trabajando en sistema de
representación Complemento a 2 de 8 bits.
Al igual que en sistema Signo y módulo, se debe discriminar el estudio del rango en números negativos y
positivos.
La cantidad de combinaciones para números negativos será: 2n−1 = 28−1 = 27 = 128 (se considera un bit
menos por el de signo). Esto es también válido para los números positivos.
El rango para números negativos será: desde −2n−1 = −28−1 = −27 = −128 hasta –1 (no se considera la
combinación para el cero, al ser éste positivo)
El rango para los números positivos será: desde 0 hasta (2n−1 − 1) = (27 − 1) = (128 − 1) = 127 (en este
caso sí se considera una combinación para el cero , al ser éste positivo)
El número mínimo será: -128 es decir 1000 0000
El número máximo será: 127 es decir 0111 1111
Luego, El rango de representación en SRC2 de 8 bits será: [–128, 127]

El objetivo de este sistema que puede parecer artificioso, es simplificar


las operaciones de suma y resta con mezcla de números positivos y
negativos. Veamos, en efecto, que se puede operar sin tener en cuenta el
signo del operando. Para ello se analizarán los distintos casos donde
intervengan operandos complementados:
 Cambio de signo. Esta operación es necesaria en sí misma o para
convertir una resta en una suma. La operación consiste en hacer el
complemento a dos. Si se parte de un número complementado, de la
forma 2𝑛 − 𝐴, al complementarlo para cambiarle el signo, se hace
2𝑛 − (2𝑛 − 𝐴) = 𝐴, obteniéndose el resultado deseado.
 Suma de dos cantidades negativas. Los números a sumar serán del
tipo (2𝑛 − 𝐴) y (2𝑛 − 𝐵). Al hacer la suma se obtiene 2𝑛 + (2𝑛 − 𝐴 −
𝐵). Esta expresión es casi la deseada: (2𝑛 − 𝐴 − 𝐵), de la que
solamente difiere por el término 2𝑛 que tiene de más. Pero este
término es un bit en la posición de orden n+1, que aparece como un
acarreo cn-1. Para obtener el resultado correcto basta eliminarlo.

76
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Ejemplo 2.22

Sumar -3 + (-5) utilizando SRC2 de 8 bits.


Dado que los número son negativos, buscamos el complemento de cada operando:
C2(3) =28 – 3 = 1 0000 0000 – 11 = 1111 1101
C2(5) =28 – 5 = 1 0000 0000 – 101 = 1111 1011
La suma resulta:
1111 1101
+ 1111 1011
1 1111 1000
Eliminando el acarreo, queda 1111 1000 que es -810

Sin embargo, no conviene perder de vista que esta operación puede


generar desbordamiento cuando 𝐴 + 𝐵 > 2𝑛−1 .
 Suma de una cantidad A positiva y otra negativa 2𝑛 − 𝐵, siendo 𝐴 <
𝐵. En este caso el resultado deberá ser negativo y la operación de
suma produce este resultado directamente.
𝐴 + 2𝑛 − 𝐵 = 2𝑛 − (𝐵 − 𝐴)
 Suma de una cantidad A positiva y otra negativa 2𝑛 − 𝐵 siendo 𝐴 ≥ 𝐵,
por lo que el resultado debe ser positivo. La suma genera 2𝑛 + (𝐴 −
𝐵). Ahora bien, 2𝑛 más una cantidad positiva no puede ser
representado con n bits, por que aparece un bit n+1, producido como
acarreo de la posición n. Por tanto, ignorando ese bit se obtiene el
resultado correcto.

Ejemplo 2.23

Sumar 7 + (-5) utilizando SRC2 de 8 bits.


Dado que:
C2(5) =28 – 5 = 1 0000 0000 – 101 = 1111 1011
La suma resulta:
0000 0111
+ 1111 1011
1 0000 0010
Eliminando el acarreo, queda 0000 0010 que es 210

Resumiendo: En este sistema se puede sumar con números positivos y


negativos sin hacer diferencia entre ellos. Solamente hay que ignorar el bit
de acarreo superior (cn-1). Por ello, la implementación de las operaciones de
suma y resta mediante circuitos digitales utilizando el SRC2 resulta
comparativamente más simple que otros sistemas de coma fija, como signo
y módulo o SRC1.

77
En resumen…
En el Sistema de Representación Complemento a 2 de n bits:
 Se pueden representar números enteros positivos y negativos.
 El rango de representación es asimétrico: R = {–(2n–1) , (2n–1 – 1)}.
 La representación para el cero es única.
 El primer bit indica el signo del número, pero forma parte del mismo.
 Si el número N es positivo se expresa en binario puro, si es negativo se representa mediante el C2(N).
 El Complemento a 2 de un número N por definición es: C2(N) = 2n – N.
 Como método práctico, el Complemento a 2 de N se puede obtener como C1(N) + 1.
 Para obtener el número original N a partir de su Complemento a 2, se calcula el complemento del
complemento: C2(C2(N)) = N.
 Se pueden realizar operaciones aritméticas con mayor simplicidad, sin tener en cuenta el signo de los
operandos.

2.3.5. Representación en Exceso a M (representación sesgada)


Este sistema consiste en representar en binario puro el valor del
número incrementado en un valor M. Es decir, el número N viene
representado por N + M expresado en binario puro de n bits.

Ejemplo 2.24

Para 8 bits (n = 8) y exceso M = 128:

127 se representa como 127 + 128 = 255 = 1111 1111


5 se representa como 5 + 128 = 133 = 1000 0101
0 se representa como 0 + 128 = 128 = 1000 0000
-5 se representa como (-5) + 128 = 123 = 0111 1011
-127 se representa como (-127) + 128 = 1 = 0000 0001
-128 se representa como (-128) + 128 = 0 = 0000 0000

Como valor de M suelen emplearse los valores M = 2n–1 y M = (2n–1 –


1), donde n es el número de bits empleados para la representación. Para un
ancho de palabra de n bits, el exceso máximo que puede emplearse es M =
2n–1, por lo que el número N para este caso, viene representado por N + M =
N + 2n–1. En el caso en que M = (2n–1 –1), el número N viene representado
por N + M = N + (2n-1 –1).

El rango de representación es R = {-2n–1 , 2n–1 – 1}

Este sistema se emplea casi exclusivamente para expresar el valor del


exponente entero en la representación de números en coma flotante.

78
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

En resumen…
En el Sistema de Representación Exceso a M de n bits:
 Se pueden representar números enteros positivos y negativos.
 El rango de representación es asimétrico: R = {–(2n–1) , (2n–1 – 1)}.
 Para representar un número N, se calcula el Exceso a M y el resultado se expresa en binario puro.
 El Exceso a M se calcula sumando el valor M al número N. de tal forma que el número resultante
siempre es positivo, por lo tanto no hace falta reservar un bit de signo.
 Como valor de M suelen emplearse M = 2n–1 y M = (2n–1 – 1)

2.3.6. Representación en Coma Flotante


La notación científica
Dado un número N, se puede llevar su representación a la forma:
N = c,m × be
Donde: c: Coeficiente, un dígito entero, o sea que 0 < c < b
m: mantisa (parte fraccionaria)
b: base
e: exponente, un número entero

Ejemplos en base diez: 0,07631 = 7,631 × 10-2


0,000578 = 5,78 × 10-4
3536811,2 = 3,5368112 × 106
561063173,21 = 5,6106317321 × 108
Observe que esta notación consiste en expresar el número N con un
coeficiente entero c de un solo dígito, una parte fraccionaria o mantisa m y
una potencia de la base elevada a un exponente e. Este exponente puede
ser positivo o negativo, según se requiera para conservar el valor original del
número.
Esta forma de representación se denomina notación científica o
notación exponencial y el método para obtenerla esencialmente consiste en
multiplicar o dividir por la base:
 Cuando el número tiene parte entera nula (número menor que la
unidad), se debe multiplicar por la base, ya que cuando se
multiplica por la base, se desplaza la coma fraccionaria hacia la
derecha. Esto provoca un ajuste de la mantisa m, y para
conservar el valor original se disminuye en uno el exponente e.
 En caso de que el número sea mayor que la base (tiene dos o más
dígitos enteros), se divide por la base. Cada división por la base
desplaza la coma fraccionaria una posición a la izquierda y
modifica la mantisa, por lo cual se debe incrementar en uno el
exponente, para mantener el valor original del número.

La notación científica también se conoce como notación en coma


flotante, ya que al cambiar el valor del exponente da la sensación de que la

79
coma fraccionaria flota de derecha a izquierda y viceversa. Es muy útil
cuando se manipulan números muy grandes o muy pequeños, como puede
apreciarse en el siguiente ejemplo:

Ejemplo 2.25

0,00000001257 = 1,257 x 10-8


-0.000327 = -3,27 x 10-4
34520000000 = 3,452 x 1010
-752319,582 = -7,52319582 x 105

Normalización
Las representaciones equivalentes que muestra el Ejemplo 2.25 para
cada número, no son únicas. Observe que el valor 0,00000001257 podría
expresarse como 12,57 × 10-9, o bien como 125,7 × 10-10. Sin embargo, la
notación científica propone utilizar la expresión equivalente que tenga la
parte entera formada por una sola cifra significativa, es decir el coeficiente c
debe ser tal que 0 < c < b. La expresión equivalente obtenida con este
criterio se denomina forma normalizada.
Como hemos descripto, la forma normalizada se obtiene, según sea
necesario, multiplicando o dividiendo por la base, y ajustando los valores de
la mantisa y el exponente de manera tal que se conserve el valor original del
número.

Representación en coma flotante en base binaria


La representación de un número real en coma flotante en base binaria
siguiendo los criterios de notación científica adopta la siguiente forma:
N2 = c,m × be = 1,m × (102)e

Observe que al utilizar base binaria, el valor del coeficiente c siempre


será 1.

Ejemplo 2.26

0,1000 101 = 1,0001 01 x 10-1 = 1,0001 01 x (2-1)10


-0.0001011 = -1,001 x 10-100 = -1,001 x (2-4)10
111 1000 0001,01 = 1,1110 0000 0101 x 101010 = 1,1110 0000 0101 x (210)10
-1111 1011 1110,11 = -1,1111 0111 1101 1 x 101011 = -1,1111 0111 1101 1 x (211)10
Nota: Se muestran los valores be en base diez para reflejar con mayor claridad la cantidad de lugares que se
corrió la coma fraccionaria en cada caso.

Si utilizamos n bits para la representación, debemos contemplar tres


partes: un bit para el signo del número, p bits para la mantisa m y q bits el
exponente e. Considerando los bits asignados a cada parte, se cumple que:
n=1+p+q

Nótese que para optimizar el uso de los n bits, no se reservan bits para
representar el coeficiente c, ya que en base binaria, los valores
normalizados siempre presentan c=1, y por lo tanto, puede omitirse en la

80
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

representación. Este dígito se denomina bit implícito y no se incluye en la


representación, pero debe tenerse en cuenta como parte del valor del
número.
A esta altura surgen los primeros dilemas: definida la longitud n de la
representación, ¿Cuántos bits se utilizarán para representar el valor de la
mantisa? ¿Cuántos bits se utilizarán para representar el valor del
exponente? ¿Qué sistema de representación se utilizará para representar la
mantisa con valores positivos y negativos? ¿Qué sistema de representación
se utilizará para el exponente considerando que éste puede ser positivo o
negativo? Aspectos como éstos generaron varios inconvenientes en un
principio.
Hasta 1980, cada fabricante de computadoras tenía su propio formato
de coma flotante y la mayoría eran diferentes entre sí. Inclusive se daba el
caso de que modelos distintos del mismo fabricante utilizaban formatos
diferentes. Peor aún, de hecho algunos de ellos efectuaban operaciones
aritméticas incorrectas debido a que la aritmética de coma flotante tiene
algunas peculiaridades que no resultan obvias para el diseñador promedio
de hardware. Esta situación ocasionaba gran confusión entre usuarios y
programadores, dificultando el intercambio de información entre distintas
máquinas.
Para rectificar esta situación, el Institute of Electrical and Electronics
Engineers (IEEE), instituyó un comité para estandarizar la aritmética de
coma flotante, no sólo para permitir el intercambio de datos de coma
flotante entre las diferentes computadoras, sino también para proporcionar
a los diseñadores de hardware un modelo que supieran que era correcto. El
trabajo resultante condujo a la Norma número 754 del IEEE. Hoy en día, la
mayoría de las CPU tienen un coprocesador de coma flotante y todas ellas
se ajustan a la norma IEEE 754, que se ha constituido en el estándar más
difundido para la aritmética binaria de coma flotante.

La aritmética de coma flotante.


El procesamiento de datos en una computadora siempre ha requerido representar números muy
pequeños o muy grandes. Para reducir el espacio necesario en la representación de estos tipos de datos
se debía recurrir a un factor de escala, característica propia de la notación en coma flotante.
Al adoptar esta forma de representación, había que realizar las operaciones en coma flotante, sin
embargo, hasta principios de la década de los ’90 los microprocesadores no disponían de circuitos
específicos para realizar estas operaciones. En ese entonces, las operaciones en coma flotante eran
implementadas mediante rutinas de software, lo cual hacía que la ejecución de los programas dedicados
a la resolución de cálculos fuera considerablemente más lenta.
Para resolver este problema se desarrollaron los coprocesadores aritméticos, circuitos integrados
específicos para realizar cálculos de aritmética de coma flotante. Así, las computadoras se equipaban
con un coprocesador aritmético conectado al mismo bus del procesador central y al captarse las
instrucciones de memoria a través del bus, el coprocesador se encargaba de ejecutar las instrucciones
que involucraban operaciones en coma flotante, funciones exponenciales, logarítmicas y
trigonométricas. Al utilizar un coprocesador aritmético, los cálculos eran resueltos por hardware,
mejorando notablemente el rendimiento de la computadora en estas tareas.
Los microprocesadores actuales incluyen en su interior una unidad de coma flotante (FPU Floating Point
Unit) con los circuitos típicos de los coprocesadores aritméticos, pero mejorados.

81
La norma IEEE 754
La norma IEEE 754 especifica la representación de números reales a
través de un formato de coma flotante que utiliza un número fijo de bits. Se
consideran dos formatos básicos:

Precisión Simple: Se utiliza un formato prefijado de 32 bits distribuidos de


la siguiente manera:

S Exponente Mantisa

1 bit 8 bits 23 bits

Precisión Doble: Se utiliza un formato prefijado de 64 bits con la siguiente


distribución:

S Exponente Mantisa

1 bit 11 bits 52 bits

Las características comunes a estos formatos son:


 El bit S es el bit de signo de la mantisa: positivo (0) o negativo (1)
 El exponente e se representa en Exceso 127 para precisión simple y en
Exceso 1023 para precisión doble. Las combinaciones de la
representación del exponente 00…0 (todos ceros) y 11…1 (todos unos) se
reservan para casos especiales, como se detalla más adelante.
 La mantisa m es la parte fraccionaria que resulta al normalizar el
número. La normalización consiste en desplazar la coma detrás del
primer dígito significativo y ajustar el valor del exponente para conservar
el valor original del número. Nótese que al colocar la coma a la derecha
del dígito más significativo, la normalización es entre 1,0000... y
1,11111...
 La representación utiliza la técnica de bit implícito. En los valores
normalizados este bit siempre vale 1 y se omite en la representación,
pero debe ser considerado cuando se realiza el proceso de conversión
para formar el número representado.

Por tanto, el valor de un número N representado en formato IEEE 754


es:
N = (-1)s × 1,m × 2e
Simple precisión: -127 < e < 128
Doble precisión: -1023 < e < 1024

Ejemplo 2.27

Normalizar los siguientes números


a) 1001,1100110 = 1,0011100110 x 23
b) 0,000001101101 = 1,101101 x 2-6
c) -0,00100 = 1,0 x 2-3
Nota: Para mayor claridad los exponentes se encuentran expresados en decimal.

82
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Ejemplo 2.28

Suponiendo que el exponente se almacena en 8 bits, y el exceso es M=127, se producirán las siguientes
transformaciones entre exponentes originales del número y exponentes almacenados en la Norma IEEE 754

Exponente Representación del


Exponente en Exceso 127
(e) exponente en Exceso 127
0 0 + 127 = 127 01111111
+2 2 + 127 = 129 10000001
+127 127 + 127 = 254 11111110
-1 -1 + 127 = 126 01111110
-126 -126 + 127 = 1 00000001

Ejemplo 2.29

Representar el número 12,37510 en formato IEEE 754 de precisión simple.


El procedimiento para expresar el dato en formato IEEE 754 es:
1. Determinar el bit de signo. El bit S es 0, por tratarse de un número positivo.
2. Convertir el número a binario. Haciendo la conversión de la parte entera y la fraccionaria, el número es:.
12,37510 = 1100,0112
3. Normalizar. El número binario resultante se debe expresar en la forma 1,m x be ; donde b es la base binaria
(10)2 o bien (2)10. Para ello, se corre la coma a la derecha o hacia la izquierda, según sea necesario, hasta
encontrar el primer 1 significativo y se multiplica por la base elevada a un exponente que representa la
cantidad de lugares que se ha corrido la coma, de tal manera que se cumpla la igualdad:
1100,0112 = 1,100011 x (23)10 = 1,100011 x (1011)2
Nota: Lo correcto es expresar todo en binario, pero en este ejemplo se muestra también la potencia en
sistema decimal para ver con claridad la cantidad de lugares que se corrió la coma, en este caso 3.
4. Determinar la mantisa. La mantisa m se extrae de la forma 1,m obtenida al normalizar. La mantisa m son los
bits detrás de la coma luego de la normalización.
Valor normalizado = 1,100011 x (23)10 , entonces m = 100011
5. Representar el exponente. En precisión simple el exponente e se debe representar en Exceso 127: El
exponente 310 representado en Exceso 127 es:
3 + 127 = 130 = (10000010)2
6. Formar la representación. La representación del número se obtiene ordenado los elementos del formato:

S Exponente Mantisa
0 10000010 10001100000000000000000

83
Otra manera de representar el número en coma flotante es dividir los
32 bits en campos de 4 bits y expresarlos en hexadecimal de la siguiente
manera:

0100 0001 0100 0110 0000 0000 0000 0000 0000

4 1 4 6 0 0 0 0 Notación compacta
hexadecimal

Ejemplo 2.30

Representar el número -0,00510 en formato IEEE 754 de precisión simple.


El procedimiento para expresar el dato en formato IEEE 754 es:
1. Determinar el bit de signo. El bit S es 1, por tratarse de un número negativo.
2. Convertir el número a binario. Haciendo la conversión de la parte entera y la fraccionaria, el número es:
-0,00510 = -0,00000001012
3. Normalizar.
-0,00000001012 = -1,01 x (2-8)10 = -1,01 x (10-1000)2
Nota: Se muestra el exponente en base 10 para ver con claridad la cantidad de lugares que se corrió la
coma, en este caso 8.
4. Determinar la mantisa.
Valor normalizado = -1,01 x (2-8)10 , entonces m = 01
5. Representar el exponente. El exponente -810 representado en Exceso 127 es:
-8 + 127 = 119 = (01110111)2
6. Formar la representación. La representación del número se obtiene ordenando los elementos del formato:

S Exponente Mantisa
1 01110111 01000000000000000000000
Formateado en campos de 4 bits la representación es BBA00000

84
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Ejemplo 2.31

Convertir a decimal el siguiente número representado en la Norma IEEE 754:


1 1000 0100 1011 0011 0000 0000 0000 000
Para encontrar el número representado, se procede de manera inversa a la realizada en los ejemplos anteriores
1. Obtener el valor del exponente. El exponente en simple precisión está representado en Exceso 127. Para
hallar el exponente se debe convertir la representación en exceso a decimal y restarle 127 :
Representación en Exceso 127 = 1000 0100 = (132)10
e = Representación en Exceso – 127 = 132 – 127 = 5
2. Obtener la mantisa. La mantisa se obtiene tomando los bits correspondientes de la representación del
número:
m = 1011 0011 0000 0000 0000 000
3. Obtener el número sin normalizar. Primero se debe obtener la forma normalizada 1,m x be. Para ello se
debe aplicar el exponente a la mantisa teniendo en cuenta que la representación según la Norma IEEE 754
omite el 1 que está delante de la coma (bit implícito), por lo cual éste debe ser agregado al reconstruir la
forma normalizada:
Valor normalizado = 1,1011 0011 0000 0000 0000 000 x (25)10
Nota: Se muestra be en base 10 para mayor claridad.
Luego, al resolver la forma normalizada se obtiene el número sin normalizar. El método práctico consiste en
desplazar la coma tantos lugares como indique el exponente, hacia la derecha o hacia la izquierda según el
signo del exponente (e = +5 indica que se corre la coma cinco lugares hacia la derecha):
N2 = 11 0110,011
4. Convertir el número a decimal. La conversión a decimal se obtiene aplicando el TFN:
(11 0110,011)2 = 54,37510
5. Determinar el signo del número. La representación del número tiene S=1, lo que indica que el número es
negativo. Por lo tanto:
N10 = -54,375

Ejemplo 2.32

La siguiente tabla muestra valores representados en formato IEEE 754 de precisión simple. En la primera
columna están los valores en notación hexadecimal (8 dígitos), en la segunda columna se muestran los 32 bits
de la representación y en la tercera columna se encuentra la formación del valor a partir de los valores del bit
de signo y el exponente, agregando el bit implícito.

3F 80 00 00 0011 1111 1000 0000 0000 0000 0000 0000 1,000000000...0 × 20 = 1.0
BF 80 00 00 1011 1111 1000 0000 0000 0000 0000 0000 -1,000000000...0 × 20 = -1.0
40 00 00 00 0100 0000 0000 0000 0000 0000 0000 0000 1,000000000...0 × 21 = 2.0
3F 00 00 00 0011 1111 0000 0000 0000 0000 0000 0000 1,000000000...0 × 2-1 = 0,5
3F C0 00 00 0011 1111 1100 0000 0000 0000 0000 0000 1,100000000...0 × 20 = 1,5

85
Observación:
Para facilitar al lector la realización de algunos ejemplos que le
permitan terminar de comprender y comprobar estas reglas, en la siguiente
página web se incluye un convertidor automático de formatos que permite
introducir un número en formato decimal (incluso en notación científica), y
comprobar el aspecto de su almacenamiento binario según el Estándar
IEEE 754. El convertidor, permite obtener la representación en simple y
doble precisión para el número dado.
 www.zator.com/Cpp/E2_2_4a.htm e ingresar al vínculo Convertidor

Casos Especiales
El estándar IEEE 754 considera varios casos especiales como
excepciones a la norma:

Representación del Cero


Puede observarse en el Ejemplo 2.32 que al aplicar la técnica del bit
implícito, el cero no es representable con la mantisa normalizada. La norma
indica que el cero se debe representar con ceros en los bits
correspondientes a la representación del exponente y la mantisa, es decir:
representación de e = 0…00 y m = 0…00.
Hay que distinguir que la excepción para la representación del cero
utiliza e =-127 o e =-1023 según sea precisión simple o doble, porque debe
cumplirse que los bits correspondientes a la representación de e sean todos
ceros: 0…00.
Observe que el bit de signo S aún permite distinguir +0 de -0. Algunos
compiladores trabajan de esta manera, sin embargo el estándar establece
que al comparar ambos “ceros” el resultado debe indicar que son iguales.
En simple precisión:
0 0000 0000 0000 0000 0000 0000 0000 000 = + 0
1 0000 0000 0000 0000 0000 0000 0000 000 = - 0

Valores No normalizados o desnormalizados


Al igual que en la representación del cero, el formato de coma flotante
con mantisa normalizada no permite conseguir una representación para
valores cercanos al cero. Para cubrir estos casos, la norma emplea el
formato N = 0,m (denominado formato desnormalizado) e indica que en este
caso debe utilizarse representación de e = 0…00 y m distinto de cero. Así,
los valores desnormalizados responden a la forma:
Ndesnormalizado = (-1)s × 0,m × 2-127 (simple precisión)
Ndesnormalizado = (-1)s × 0,m × 2-1023 (doble precisión)

Nota: Los valores desnormalizados utilizan e =-127 o e =-1023 según sea


precisión simple o doble porque debe cumplirse que los bits
correspondientes a la representación de e sean todos ceros: 0…00.
Observe que en la excepción para valores desnormalizados el bit
implícito es igual a cero (N = 0,m), por lo que el valor del número
representado queda especificado solamente por la mantisa y el valor del
exponente (e= -127 o e= -1023, según se trate de precisión simple o doble).

86
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

El rango de valores desnormalizados es:

En precisión simple:
Desde: 0,0000 0000 0000 0000 0000 001 × 2-127 = 2-23 × 2-127 = 2-150
Hasta: 0,1111 1111 1111 1111 1111 111 × 2-127  1 × 2-127 = 2-127

En precisión doble:
Desde: 0,0000 … 0001 × 2-1023 = 2-52 × 2-1023 = 2-1075
Hasta: 0,1111 … 1111 × 2-1023  1 × 2-1023 = 2-1023

Valores infinitos
El estándar utiliza la combinación representación de e = 1…111 (todos
unos) y m = 0…000 (todos ceros) para indicar los valores infinito positivo o
negativo., según el valor del bit de signo. Estos valores se utilizan para
indicar condiciones de desbordamiento, esto es que, el resultado obtenido
en la última operación realizada excede el rango de representación.
Esta distinción ha permitido al estándar definir procedimientos para
continuar las operaciones después que se produce un desbordamiento.
Ejemplo:
0 11111111 00000000000000000000000 = +
1 11111111 00000000000000000000000 = -

Valores no numéricos
Cuando e = 255 y m ≠ 0. Se identifican por un exponente con todos
sus valores a 1, y un valor distinto de cero para la mantisa.
Indican valores indeterminados u operaciones no válidas.

Ejemplo:

0 11111111 10000100000000000000000
1 11111111 00100010001001010101010

Figura 2.18 Esquema conceptual de la representación de los casos particulares o especiales.

87
+ 0 < Exp < Max Cualquier patron bits
-
Normalizado

+ 0 Cualquier patron bits diferente de cero


Desnormalizado -

+ 0 0
Cero -

+ 1111...1 0
Infinito -

+ 1111...1 Cualquier patron bits diferente de cero


Indeterminado -

Figura 2.19 Cuadro resumen de casos especiales del formato IEEE 754.

Figura 2.20 Representación de la recta real en el formato IEEE 754.

Concepto Precisión simple Precisión doble


Bits para el signo 1 1
Bits para el exponente 8 11
Bits para la mantisa 23 52
Total de bits 32 64
Formato del exponente Exceso 127 Exceso 1023
Rango del exponente –126 a +127 –1022 a + 1023
Valor normalizado más pequeño 2–126 (10–38) 2–1022 (10–308)
Valor normalizado más grande 2128 (1038) 21024 (10308)
Valor desnormalizado más pequeño 2–150 (10–45) 2–1074 (10–324)

Tabla 2.3 Tipos numéricos del IEEE 754

Como conclusión se puede expresar que la representación en coma


flotante se utiliza para representar a los números reales. Sin embargo, no se
puede representar a todos ya que estos son infinitos y la capacidad de
almacenamiento es finita. El exponente determina el rango de la recta real,
es decir los segmentos de ella, mientras que la mantisa determina la
precisión (longitud del mínimo intervalo).

88
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Ejemplo 2.33

Convertir a decimal el siguiente número representado en la Norma IEEE 754 de precisión simple expresado en
notación compacta hexadecimal: BF80 0000
En este caso, lo primero que debe hacerse es convertir los dígitos hexadecimales a binario:
B F 8 0 0 0 0 0
1011 1111 1000 0000 0000 0000 0000 0000
Teniendo en cuenta que por ser de precisión simple, la distribución de bits tomados de izquierda a derecha es:
1 bit de Signo, 8 bits de exponente y 23 bits de mantisa, nos queda:
S Exponente Mantisa
1 0111 1111 0000 0000 0000 0000 0000 000
Para encontrar el número representado, se procede de manera inversa a la realizada en la conversión a
formato IEEE754
1. Obtener el valor del exponente. El exponente en simple precisión está representado en Exceso 127. Para
hallar el exponente se debe convertir la representación en exceso a decimal y restarle 127 :
Representación en Exceso 127 = 0111 1111 = (127)10
e = Representación en Exceso – 127 = 127 – 127 = 0
2. Obtener la mantisa. La mantisa se obtiene tomando los bits correspondientes de la representación del
número:
m = 0000 0000 0000 0000 0000 000
3. Obtener el número sin normalizar. Primero se debe obtener la forma normalizada 1,m x be aplicando el
exponente a la mantisa y teniendo en cuenta el uno tácito (la representación según la Norma IEEE754 omite
el 1 que está delante de la coma en 1,m):
Valor normalizado = 1,0000 0000 0000 0000 0000 000 x (20)10
Nota: Se muestra be en base 10 para mayor claridad.
Luego, al resolver la forma normalizada se obtiene el número sin normalizar. El método práctico consiste en
desplazar la coma tantos lugares como indique el exponente, hacia la derecha o hacia la izquierda según el
signo del exponente. En este caso el exponente es cero, luego:
N2 = 1, 0000 0000 0000 0000 0000 000 x (1) = 1,0000 0000 0000 0000 0000 0002 = 12
4. Convertir el número a decimal. La conversión a decimal queda:
12 = 110
5. Determinar el signo del número. La representación del número tiene S = 1, lo que indica que el número es
negativo. Por lo tanto:
N10 = -1

89
En resumen…
En el Sistema de Representación según la norma IEEE 754:
 Se pueden representar números reales.
 La representación se basa en la expresión binaria en notación científica del número: N = 1,m × be ,
donde N es un número real positivo o negativo, m es la mantisa (parte fraccionaria), b es la base
binaria y e el exponente.
 Existen dos formatos básicos: simple precisión (32 bits) y doble precisión (64 bits).
 La precisión simple utiliza 1 bit de signo, 8 bits para el exponente y 23 bits para la mantisa.
 La precisión doble utiliza 1 bit de signo, 11 bits para el exponente y 52 bits para la mantisa.
 Para representar un número N, el primer paso es expresarlo en binario puro y luego normalizarlo, esto
es, llevarlo a la forma 1,m × be
 El primer bit indica el signo del número.
 El exponente e se representa en Exceso 127 o Exceso 1023, según sea el formato de la representación
(precisión simple o doble).
 La mantisa m es la parte fraccionaria del número normalizado; es decir, no se representa el "1",
denominado uno implícito., pero al formar el número a partir de su representación, hay que tener en
cuenta que este 1 forma parte del valor del número.

A continuación y a modo de ejemplo, en la siguiente, se muestran los


principales tipos de datos utilizables en el lenguaje de programación C
(compilador Borland C++ para PC).


Precisión
Tipo de Rango de valores
(dígitos decimales)
bits
Carácter 8 -128 a 127 ---
Carácter sin signo 8 0 a 255 ---
Enumerado 16 -32.768 a 32.767 ---
Entero corto 8 -128 a 127 ---
Tipos
Entero corto sin signo 8 0 a 255 ---
Enteros
Entero 16 -32.768 a 32.767 ---
Entero sin signo 16 0 a 65.535 ---
Entero largo 32 -2.147.483.648 a 2.147.483.648 ---
Entero largo sin signo 32 0 a 4.294.967.295 ---
Coma flotante 32 ± [3,4E-38 a 3,4E38], 0 7
Tipos
Coma flotante doble 64 ± [1,7E-308 a 1,7E308], 0 15
Reales
Coma flotante doble largo 80 ± [3,4E-4932 a 1,1E4932], 0 19
Tabla 2.4 Principales tipos de datos en C++ (compilador Borland C++ para PC)

2.3.7. Nociones de Error


Una de las formas usuales que utiliza el hombre para describir su
entorno, es realizando mediciones. Cada entidad o evento puede ser
descripto por varias medidas. Por distintas causas (instrumento utilizado,
método o destreza del medidor, entre otras), el proceso de realizar una

90
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

medición hace que el valor obtenido no se corresponda con el valor


verdadero, dando lugar a errores.
Algunos errores están en los valores que se toman de los datos, porque
se representan con aproximaciones, es decir, tienen un número finito de
dígitos o de cantidades que no responden exactamente con el número real
de dígitos.

En esta Unidad, el objetivo es proporcionar algunas nociones sobre el


concepto de error que se presentan al representar números y resolver
problemas matemáticos usando computadoras. Es muy difícil estimar el
error total en el que se incurre al resolver un problema, de manera que sólo
se pretende dar herramientas muy básicas sobre el tema.

Por ejemplo, si necesitamos usar el número  en un cálculo, podemos


escribirlo como 3.14, 3.1416, 3.1415926535589793..., etc.

En muchos casos aún una fracción simple no tiene representación


1
decimal exacta, por ejemplo , debe escribirse con una aproximación, esto
3
1
es  0,3333...
3

Son muchas las aplicaciones que demandan cómputo aritmético


intensivo: tales como criptografía, multimedia, telefonía celular y ciertos
dispositivos electrónicos. Por esta razón hay un crecimiento de la aritmética
de las computadoras, eso lleva a producir errores y surge la necesidad de
detectarlos.
No debe confundirse exactitud con precisión. La exactitud está
relacionada al grado de aproximación de la medida efectuada con respecto
al verdadero valor. Una medición será más exacta, cuanto menor sea el
error cometido. Por otra parte, el concepto de precisión está relacionado a la
unidad menor de cambio que puede percibirse. A modo de ejemplo, puede
citarse el caso de un reloj digital. Cuando se habla de la precisión del reloj
no entra en juego la exactitud, que puede ser mejor o peor según sea la
calidad del mismo. De hecho, puede tenerse un reloj con alta precisión
(centésimas de segundo) y que permanentemente atrase (inexacto); o
también podríamos tener un muy buen reloj (muy exacto) con menor
precisión que el primero (por ejemplo que nos indique solo al minuto).

Definiciones de error
Los errores numéricos surgen del uso de aproximaciones para
representar operaciones y valores verdaderos. Éstos incluyen los errores de
truncamiento que resultan del empleo de aproximaciones siempre por
defecto, por insuficiencia de precisión para representar el valor verdadero, y
los errores de redondeo, que están motivados por el mismo argumento que
los anteriores, pero que a diferencia de los de truncamiento, a veces se
producen por defecto y otras veces en exceso.
Para ambos tipos de errores, la relación entre el resultado verdadero y
el aproximado está dada por:
Valor verdadero = Valor aproximado + Error
o
Error = Valor verdadero - Valor aproximado

91
Ejemplo:
Calculemos el error cometido al tomar el valor Va  8,14 como una
aproximación con 2 decimales, del número Vv  8,14593.
Tenemos:
E  Vv – Va  8,14593 – 8,14 = 0,00593

En este caso E > 0 y por lo tanto Va es una aproximación de Vv por


defecto. En el caso que E< 0, se dice que la aproximación es por exceso.

Redondeo y truncamiento de números


Recordemos que la representación de un número en la computadora
permite un número limitado de cifras. Para eliminar las cifras que no se van
a incluir en la representación de un número, se puede aplicar truncamiento
o redondeo.

Truncamiento: Simplemente se conservan tal como están las n primeras


cifras en el número.
Ejemplos:
7
a)  2,33333... si lo truncamos hasta 4 cifras significativas se
3
aproxima como: 2,333.
8
b)  2,666666666... si lo truncamos hasta 6 cifras significativas se
3
aproxima como: 2,66666.

Redondeo: Las reglas de redondeo que aplicaremos son:


1 La última cifra retenida se incrementa en 1 si el primer dígito
descartado es mayor que 5.
2 Si el primer dígito descartado es menor que 5, entonces la última
cifra retenida no se altera.
3 Si el primer dígito descartado es 5, se toma como última cifra el
número par más próximo; es decir, si la última cifra retenida es par
se deja, y si es impar se incrementa en uno.

Las dos primeras reglas son de sentido común. La tercera es un


convenio razonable porque, si se sigue siempre, la mitad de las veces
redondeamos por defecto y la mitad por exceso.
Al redondeo que se rige por estas reglas se lo conoce como redondeo
simétrico y es el que aplican las computadoras que redondean.

Ejemplos:
7
a)  2,33333... redondeado a 4 cifras significativas se representa igual
3
que si truncamos.
8
b)  2,66666... si lo redondeamos a 6 cifras significativas se aproxima
3
como 2,66667.

La mayoría de las computadoras trabajan con redondeo.


Normalmente, la necesidad de redondear en cálculos numéricos, se
presenta en números decimales (con coma decimal) periódicos o en
números decimales con infinitas cifras decimales no periódicas.

92
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Además, la mayoría de las computadoras actuales permiten el uso de


la aritmética de doble precisión (mediante hardware o software),
proporcionando el doble de cifras significativas que la aritmética de punto
flotante de precisión simple. Obviamente, al truncar o redondear un
número se comete un error.

Representación de números reales en IEEE754


La coma flotante no es una representación exacta para todos los
números reales, sino que, en algunos casos permite representar los
números reales en forma aproximada. Es preciso aplicar cuidadosamente
técnicas de redondeo.

Representación en simple precisión de 32 bits para la IEEE754


Puesto que los números extremos representables en coma flotante son
± 1038, ello implica que si escribimos en el teclado un número en base 10
de 37 cifras, será aceptado dentro del rango de representación. Pero como
se verificará, devolverá con precisión las 7 primeras de sus cifras, dado que
en la representación tratada sólo se disponen de 23+1 = 24 bits para
guardar cualquier número representable en coma flotante (son 23 +1 por el
bit implícito de la normalización que no se representa). Esta limitación de la
cantidad de dígitos que se pueden representar, propia de cualquier
representación de números en una computadora (sean reales, enteros u
otros) determina que siempre se trate de “números con precisión finita”.

2.3.8. Formatos de Longitud Variable: Decimal Codificado en


Binario (BCD).
Los formatos decimales codificados en binario convierten, uno a uno,
los dígitos decimales a binario.
Para poder representar un dígito decimal cualquiera (del 0 al 9) se
requerirán al menos 4 bits. Ahora bien, puesto que 4 bits permiten 16
combinaciones pero sólo existen diez dígitos decimales, se desperdicia el
6×100/16 = 37,5% de la capacidad de representación. Cabría, por tanto,
preguntarse por el interés en este sistema de representación. La
justificación de su uso se basa en dos puntos:
 La entrada y salida de datos del computador debe realizarse usando
la base decimal, puesto que es el sistema “natural” para el operador
humano. Por tanto, si los cálculos a realizar son sencillos, el uso de
otro sistema de representación puede no compensar la doble
traducción de decimal a binario y viceversa, aunque los datos ocupen
más espacio y los cálculos con ellos sean más lentos al utilizar BCD.
 Los errores de redondeo que se producen en binario y decimal son
distintos. Por ello, para algunas aplicaciones puede ser interesante
trabajar con un sistema de representación de este tipo, que permite
seguir exactamente las normas de redondeo establecidas en decimal.

La codificación BCD consiste en asociar a cada dígito su valor en


binario puro.

93
Ejemplo 2.34

Represente el número (175,62)10


N10 = 1 7 5 6 2
BCD 0001 0111 0101 0110 0010

Por lo tanto, el número 175,62 se representa en BCD con 3 Bytes y quedaría de la siguiente manera:
N = 0000 0001 0111 0101 0110 0010
Utilizando notación compacta hexadecimal:
N = 01 75 62

Nótese que la coma no se representa. Se determina a través del


formato del lenguaje de programación asociado. Por ejemplo en COBOL, el
formato asociado sería 999V99. Donde 9 indica que es numérico y la V la
posición de la coma.

Existen dos variantes en la representación BCD:


BCD empaquetado. En este caso se almacenan 2 dígitos decimales por
cada byte y el signo va en el segundo cuarteto del último byte.
BCD desempaquetado. En este caso, cada dígito se almacena en el
segundo cuarteto de cada byte (los primeros cuatro bits se completan con
unos) y el signo se guarda en el primer cuarteto del último byte.

Como ya se mencionó anteriormente, de las 16 combinaciones posibles


al representar los dígitos decimales con 4 bits, quedan 6 combinaciones sin
utilizar. De las combinaciones libres, se ocupan dos para representar los
signos. Por convención se adopta la combinación 1100 (el símbolo C16) para
el signo positivo y la combinación 1101 (el símbolo D16) para el signo
negativo.

Ejemplo 2.35

Represente en codificación BCD los siguientes números:


+8435Desempaquetado F8 F4 F3 C5 La C indica signo +
-8435 Desempaquetado F8 F4 F3 D5 La D indica signo -
+8435Empaquetado 08 43 5C La C indica signo +
-875 Empaquetado 87 5D La D indica signo –

Los formatos decimales codificados en binario tienen dos ámbitos de


aplicación:

 Desempaquetado: En la entrada-salida y periféricos los números


suelen codificarse como caracteres alfanuméricos, empleando un
byte por dígito. El signo se incluye en la parte sobrante del byte que
representa el último carácter. Otras alternativas utilizan la parte

94
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

sobrante del primer carácter, o un carácter especial de cabecera o de


cola.
 Empaquetado: En cálculo, especialmente en aplicaciones de gestión,
se puede emplear un sistema empaquetado, esto es, reservando
solamente cuatro bits por dígito.

En resumen…
El Sistema de Representación BCD:
 Permite la representación de datos numéricos.
 Representa cada dígito decimal mediante 4 bits (medio byte).
 Permite realizar operaciones aritméticas (no ha sido explicado).
 Existe un alto número de combinaciones desaprovechadas.
 Existen dos formatos de BCD: empaquetado (4 bits/dígito) y desempaquetado (8 bits/dígito).
 Es un formato de longitud variable, ya que la cantidad de bytes que ocupe la representación
dependerá de la cantidad de dígitos que tenga el número.

2.4 Representación de texto


Sirve para representar información de tipo texto. En los años 50, se
definieron formatos de codificación empleando 6 bits por carácter. Ello
permitía representar hasta 64 caracteres distintos:
 26 letras mayúsculas (A  Z)
 10 números (0  9)
 28 caracteres especiales y símbolos de puntuación (. , ; + - *…)
Ejemplos de estos formatos son el Fieldata, X.3 y el BCDIC.

Sin embargo, la necesidad de representar letras mayúsculas y


minúsculas, así como de tener caracteres para control de periféricos, han
dado lugar a códigos de 7 bits, como el ASCII (American Standard Code
Interchange Information), y de 8 Bits, como el ASCII extendido y el EBCDIC
(Extended Binary Coded Decimal Interchange Code), introducido por IBM
360 en el año 1964. En la actualidad el más popular es el ASCII extendido,
que emplea 8 bits para incluir letras acentuadas, la ñ, caracteres
semigráficos y muchos otros símbolos.
Los caracteres comúnmente utilizados en informática se pueden
agrupar en cinco categorías:
a) Caracteres alfabéticos: son las letras minúsculas y mayúsculas del
abecedario inglés: a, b, c,...., x, y, z, A, B, C,...., X, Y, Z
b) Caracteres numéricos: son los diez símbolos decimales: 0, 1, 2,..., 8, 9
c) Caracteres especiales: son los símbolos ortográficos y matemáticos no
incluidos en los grupos anteriores: ° ¡ “ $ % & + - , ; . ¿

95
d) Caracteres geométricos y gráficos: son los símbolos con los que se
pueden representar formas geométricas o íconos elementales: ¶, ☼, ♀,▬,
▲, ▼, ←
e) Caracteres de control: representan órdenes de control. Estos son
insertados en los textos por los usuarios o por los programas de control
de periféricos o de comunicación. Algunos ejemplos son:
NL: pasar a la línea siguiente
CR: ir al comienzo de una línea
SYN: sincronización de una transmisión

2.4.1. Código ASCII


El código ASCII (American Standard Code for Information Interchange)
básico utiliza 7 bits para representar cada carácter y es actualmente uno de
los más usados. Existen numerosas versiones que utilizan 8 bits y respetan
los códigos normalizados del ASCII básico, aprovechando las combinaciones
no utilizadas para representar símbolos adicionales. Por ejemplo, la norma
ISO 8859-1, también denominada ISO Latín1, se proyectó para América y
Europa Occidental, e incluye vocales con acentos, tildes, con signos
diacríticos (esto es, signos ortográficos que dan a una letra un valor
especial, como la diéresis usada en alemán y en español), etc.

Vale la pena resaltar que:


- El ASCII extendido utiliza 8 bits para representar cada carácter
- En ASCII los números tienen los primeros cuatro bits (zona)
formando el hexadecimal 3 (0011), mientras que el número decimal
es codificado en los cuatro bits restantes.

La tabla siguiente muestra la codificación binaria del ASCII extendido.

Bits 7654
0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
3210 0000
0000 NUL DLE SP 0 @ P ` p Ç É á ░ ┴ Ð ß ±
0001 SOH DC1 ! 1 A Q a q ü æ í ▒ ┬ Ê Ô ‗
0010 STX DC2 “ 2 B R b r é Æ ó │ ├ Ë Ò ¾
0011 ETX DC3 # 3 C S c s â ô ú ┤ ─ È õ ¶
0100 EOT DC4 $ 4 D T d t ä ö ñ Á ┼ ı Õ §
0101 ENQ NAK % 5 E U e u à ò Ñ Â ã Í µ ÷
0110 ACK SYN & 6 F V f v å û ª À Ã Î þ ¸
0111 BEL ETB ‘ 7 G W g w ç ù º © ╚ Ï Þ °
1000 BS CAN ( 8 H X h x ê ÿ ¿ ╣ ╔ ┘ Ú ¨
1001 HT EM ) 9 I Y i y ë Ö ® ║ ╩ ┌ Û ·
1010 LF SUB * : J Z j z è Ü ¬ ╗ ╦ █ Ù ¹
1011 VT ESC + ; K [ k { ï ø ½ ╝ ╠ ▄ ý ³
1100 FF FS , < L \ l | î £ ¼ ¢ ═ ¦ Ý ²
1101 CR GS - = M ] m } ì Ø ¡ ¥ ╬ Ì ¯ ■
1110 SO RS . > N ^ n ~ Ä × « ┐ ¤ ▀ ´ �
1111 SI US / ? O _ o • Å ƒ » └ ð Ó

Tabla 2.5 Tabla de caracteres del código ASCII extendido

96
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Ejemplo 2.36

Represente en código ASCII extendido usando notación en binario y hexadecimal la cadena “Hola”.
Como la conversión es directa, cada carácter es representado en un byte. De acuerdo con la Tabla 2.5. sería:
Hola = 0100 1000 0110 1111 0110 1100 0110 0001 en binario
Hola = 48 6F 6C 61 en hexadecimal

2.4.2. Código EBCDIC


El código EBCDIC (Extended Binary Coded Decimal Interchange Code)
utiliza 8 bits para representar cada carácter.
Este tipo de codificación permite codificar 256 (28) símbolos distintos,
lo que significa que se pueden representar una cantidad razonable de
caracteres.
La tabla siguiente muestra la codificación binaria del EBCDIC.

Bits 7654
0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
3210 0000
0000 NUL DLE DS IRS SP & - ø Ø ° µ ¢ ä å É 0
0001 SOH DC1 SOS ITB RSP ` / \ a j ü £ A J ÷ 1
0010 STX DC2 FS SYN â ê Â Ê b k s ¥ B K S 2
0011 ETX TM WUS IR { ë # Ë c l t · C L T 3
0100 PF RES BYP PN à è À È d m u © D M U 4
0101 HT NL LF RS á í Á Í e n v [ E N V 5
0110 LC BS ETB UC ã î Ã Î f o w ¶ F O W 6
0111 DEL IL ESC EOT } Ï $ Ï g p x ¼ G P X 7
1000 GE CAN SA SBS ç ì Ç Ì h q y ½ H Q Y 8
1001 SPS EM SFE IT ñ ß Ñ é i r z ¾ I R Z 9
1010 SMM CC SM RFF § ¤ ö : « ª ¡ ¬ SHY ¹ ² ³
1011 VT CU1 CU2 CU3 . Å , Ä » º ¿ │ ô û Ô Û
1100 FF IFS MFA DC4 < * % Ö ð æ Ð ─ ¦ ~ @ Ü
1101 CR IGS ENQ NAK ( ) _ ‘ ý , Ý ] ò ù Ò Ù
1110 SO IRS ACK + ; > = Þ Æ þ ´ ó ú Ó Ú
1111 SI IUS BEL SUB ! ^ ? “ ± ] ® × õ ÿ Õ EO

Tabla 2.6 Tabla de caracteres del código EBCDIC

Sobre esto se puede hacer los siguientes comentarios:


- En el EBCDIC los números tienen los primeros cuatro bits (zona) en
1 (en hexadecimal forman la letra F)
- Cuando se realiza una clasificación alfanumérica se realiza en
función del número hexadecimal que está almacenado.

97
Ejemplo 2.37

Represente en código EBCDIC usando sistema binario y hexadecimal la cadena “Hola”.


Al igual que en el sistema anterior se representa un carácter con un byte, de acuerdo con la Tabla 2.6 quedaría:
Hola = C8 96 93 81 = 1100 1000 1001 0110 1001 0011 1000 0001

2.4.3. Código Unicode


Los códigos anteriores tienen limitaciones y problemas. Por ejemplo, la
cantidad de caracteres es insuficiente en algunas situaciones como la
representación del lenguaje escrito de diversas culturas orientales, tales
como la china, japonesa y coreana. Este problema es especialmente
relevante para las aplicaciones de Internet, ya que se pretende que éstas
sean lo más universales posible.
Unicode es una norma de codificación de caracteres propuesto por un
consorcio de empresas (Apple, HP, IBM, Microsoft, Oracle Sun, Sybase,
Unisys, etc.) y entidades que trata de ofrecer las siguientes propiedades:
 Universalidad: ya que persigue cubrir la mayoría de lenguajes escritos
existentes en la actualidad.
 Unicidad: ya que a cada carácter se le asigna exactamente un único
código, a diferencia de las distintas variantes de ASCII que sólo definen
los necesarios para un idioma o zona geográfica.
 Uniformidad: ya que todos los símbolos se representan con un número
fijo de bits, concretamente 16 bits.

Básicamente Unicode proporciona un número único para cada


carácter, sin importar la plataforma, ni el programa, ni el idioma,
permitiendo un fácil traspaso entre distintos sistemas de codificación y
plataformas. Además, es un requisito para sistemas modernos tales como
XML, Java, CORBA, WML, etc.
En la siguiente tabla se muestra un esquema de cómo se han asignado
los códigos Unicode. Las 65.536 diferentes combinaciones (0000H a FFFFH)
se han dividido en cuatro zonas:

Número de
Zona Códigos Símbolos codificados
caracteres
0000
Latín 1 256
00FF
A 0000 Otros alfabetos 7.936
Símbolos generales y caracteres fonéticos chinos,
2000 8.192
japoneses y coreanos
I 4000 Ideogramas 24.576
O A000 Pendiente de asignación 16.384
E000
R Caracteres locales y propios de los usuarios 8.192
FFFF

Algunas características de Unicode son:


 Cada carácter se codifica mediante 16 bits, lo que permite representar
216 = 65536 símbolos.
 No se codifican caracteres de control.
 Se incluyen caracteres combinados, por ejemplo ñ, ä, etc.

98
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

 Cada combinación es un concepto abstracto, no determina la forma o


imagen del carácter (font o fuente). Las letras latinas de mayúsculas y
minúsculas tienen caracteres distintos.

Unicode se está utilizando cada vez más y es reconocido por sistemas


operativos tales como Windows XP, lenguajes tales como Java y
aplicaciones como navegadores web.

2.5 Representaciones redundantes


El objetivo de las representaciones redundantes es salvaguardar la
información frente a posibles errores surgidos en su almacenamiento o
manipulación. Para ello se añade una información adicional (redundancia) a
cada dato, de forma que el conjunto [redundancia + dato] guarde una cierta
ley. Si se produce un error en este conjunto, ya no se cumplirá la citada ley,
por lo que se puede detectar que ha aparecido un error. Empleando
suficiente información redundante se puede, incluso, no sólo detectar un
error sino varios y, además, identificarlos y, por lo tanto, corregirlo.

Está claro que el error puede producir un nuevo código que también
cumpla la ley. El problema de diseño es, por tanto, buscar una ley que
permita detectar y/o corregir todos los errores posibles o probables.

2.5.1. Detección de errores en la transmisión de datos


La introducción de redundancias con objeto de detectar o corregir
errores se efectúa de acuerdo con algún algoritmo predeterminado; de esta
forma los códigos pueden comprobarse automáticamente por circuitos
adecuados. A modo de ejemplo sólo mencionaremos el código de paridad,
dejando para otras asignaturas el tratado de este problema en forma más
detallada.
El Código de Paridad es un algoritmo que consiste en añadir al código
inicial de cada cadena de bits (dato, palabra) un nuevo bit denominado bit
de paridad. Existen dos criterios para introducir este bit:
 Paridad par: se añade un bit (0 o 1) de forma tal que el número total de
unos de código que resulte, incluido el bit de paridad, sea par.
 Paridad impar: se añade un bit (0 o 1) de forma tal que el número total
de unos de código que resulte, incluido el bit de paridad, sea impar.

Código con bit de paridad Código con bit de paridad


Código inicial
(criterio par) (criterio impar)
1000 0001 1000 0001 0 1000 0001 1
0010 1111 0010 1111 1 0010 1111 0
1100 1000 1100 1000 1 1100 1000 0

99
Se suele agregar acompañando a cada octeto en los periféricos o a
cada palabra en la memoria principal.
El código de paridad permite detectar el error en un solo bit (error
simple), por lo que es válido para aquellos casos en que éste sea el tipo de
error más probable. Si las condiciones hacen más probable el error múltiple
y existe un número par de bits con error, la paridad resulta correcta, por lo
que ese tipo de error no puede detectarse con este algoritmo.
Cabe destacar que este código solo permite detectar el error, pero no lo
corrige ya que no permite identificar cuál es el bit erróneo.

Ejemplo 2.38

Dada la cadena 1101011 a transmitir como dato, agregue el bit de paridad considerando paridad impar:
Para la cadena 1101011 el bit de paridad es 0 para cumplir con el criterio de paridad impar, ya que al analizar la
cadena encontramos 5 unos, que es un número impar. Para que la cadena resultante siga presentando paridad
impar, el bit a agregar debe ser 0.
Por lo tanto, la cadena resultante a ser operada en la transmisión es 11010110.

El bit de paridad se introduce antes de transmitir o grabar la


información (en la memoria principal o disco magnético). Si por efectos del
ruido, interferencias en la transmisión o defecto del soporte de información
un bit cambia de valor (de 1 a 0 o de 0 a 1), se introduce un error. Si en el
receptor o al leer la información se comprueba la paridad del mensaje (esto
es, se cuenta su cantidad de unos), se detectaría la existencia de ese error,
ya que el número de unos dejaría de ser par (en el caso de criterio par) o
impar (en el caso de criterio impar).

100
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Bibliografía

PRIETO ESPINOSA, LLORIZ RUIZ, TORRES CONTERO. "Introducción a la


Informática" - 3ra Edición McGrawGill, 2002
DE MIGUEL ANASAGASTI, Pedro. "Fundamentos de los Computadores"
GINZBURG, ALBARRACÍN. “Operación Programación de Computadoras" -
4ta Edición
STALLING, William."Organización y Arquitectura de Computadores"
MEINADIER, Jean Pierre. "Estructura y Funcionamiento de Computadores
Digitales"

101

También podría gustarte