Está en la página 1de 17

TEMA 2

REPRESENTACIÓN DE LA INFORMACIÓN.

SEGUNDA PARTE

Álvaro Pablos Lamas


Índice de contenido
1.- Formatos para la representación de los números ..........................................................................3
2.- Representación en Coma Fija..........................................................................................................3
3.- Representación de números enteros con signo..............................................................................4
3.1.- Magnitud y Signo.....................................................................................................................4
3.2.- Complemento a 1 (o complemento a la base menos 1).........................................................4
3.3.- Complemento a 2 (o complemento a la base menos 2).........................................................5
4.- Operaciones numéricas en coma fija..............................................................................................5
4.1.- Suma aritmética de números binarios....................................................................................5
4.2.- Diferencia aritmética de números binarios.............................................................................9
4.3.- Multiplicación y división........................................................................................................10
5.- Representación en coma flotante.................................................................................................11
5.1.- Rango de representación.......................................................................................................11
5.2.- Formatos de representación en coma flotante.....................................................................12
6.- Códigos de detección y corrección de errores..............................................................................13
6.1.- TIPOS DE CÓDIGOS DETECTORES..........................................................................................13
6.2.- DISTANCIA HAMMING...........................................................................................................13
6.3.-Código Hamming para la detección y corrección de errores.................................................14
7.- INNOVACIÓN: REPRESENTACIÓN CUÁNTICA DE LA INFORMACIÓN.............................................14
8.- Bibliografía.....................................................................................................................................17

Álvaro Pablos Lamas


1.- Formatos para la representación de los números
Supongamos que queremos representar el 45 en ASCII:

Representamos el 4: 00110100
Representamos el 5: 00110101

45 = 4 5)ASCII = 00110100 – 00110101

Esta forma no es adecuada para introducir datos en el ordenador por dos razones:
1.- Dificulta la realización de operaciones.
2.- Utiliza muchos bits.

Por tanto, hay que buscar una representación que facilite las operaciones aritméticas y conserve el
valor, podemos emplear el Binario Natural.

45)10=101101)2

La mayoría de los computadores establecen dos formas para la representación de los


números, éstas se adaptan básicamente a las características de 2 tipos de números que podemos
encontrar en las aplicaciones habituales (ingeniería, ciencia, matemáticas, empresariales,
mercadotecnia, etc), los enteros y fraccionarios con pocas de cifras decimales, y los números
reales con gran rango dinámico (rango de valores) y precisión de varias decenas de decimales. Los
dos formatos son la representación en coma fija, para los números enteros y fraccionarios y
representación en coma flotante, para los números reales. Muchos computadores incorporan
también la representación decimal (BCD), que se utiliza cuando las operaciones a realizar son
bastante sencillas. Esta representación requiere en el nivel de hardware circuitos que ajusten los
resultados de las operaciones aritméticas a los valores BCD, aunque esto también se puede realizar
por software. Más adelante se estudia la aritmética de los números representados en estos
formatos.

2.- Representación en Coma Fija

En esta representación la coma o punto decimal está en una posición fija. Esta no ocupa ninguna
posición física en la memoria, sino que se establece implícitamente. El tamaño de la
representación es de n+m bits, de los cuales los n primeros representan la parte entera del número
y los m finales la parte fraccionaria del número. Así el número quedaría: n.m. Dos casos
particulares de interés son los que resultan de situar la coma a la derecha y a la izquierda del
número representado, esto es, n. (número entero) y .m (número totalmente fraccionario).

EJEMPLOS

245.57)10 = 000011110101.1001

10101.110 = 1x24 + 1x23 +1x22 + 0x21 + 1x20 + 1x2-1 + 1x2-2 + 0x2-3 = 21,7510

Álvaro Pablos Lamas


3.- Representación de números enteros con signo
Los números enteros pueden ser positivos o negativos. Cuando se representan números enteros
sin signo (todos positivos), es decir, naturales, y se utilizan n bits, el rango de valores que se podrán
representar está entre 0 y 2n-1; por ejemplo con n=8 bits pueden representarse desde 0 a 255, y
con n=16 desde 0 a 65535.
Cuando se representan números con signo, se utiliza el bit más significativo para indicar el signo,
normalmente con valor 0 para positivo y valor 1 para negativo; el rango de valores representado
depende de la forma de representación elegida.

Existen tres formas básicas de representar números enteros con signo en coma fija:

3.1.- Magnitud y Signo

El bit más significativo se reserva para el signo, y el resto de n-1 bits indican la magnitud o valor
del número representado. El rango de valores es el siguiente: [-2n-1+1 , 2n-1-1], así si n=8 se tiene [-
127,127].
En magnitud y signo el cero tiene dos representaciones, así por ejemplo, con 4 bits se podría
representar el 0 como 0000, y el -0 como 1000. Normalmente la segunda no se utiliza.

EJEMPLO

1101)MyS = -5)10

3.2.- Complemento a 1 (o complemento a la base menos 1)

Los números positivos se representan igual que en magnitud y signo, los negativos se
representan mediante el complemento a 1 de sus correspondientes positivos. Para obtener el
complemento a 1 de un número en binario basta cambiar en el número los ceros por unos y los
unos por ceros. También puede obtenerse restando cada cifra binaria de la base-1 (base-1=1 en
caso de b=2). Como en el caso anterior, el 0 tiene dos representaciones, aunque solo se utiliza
0000 (con 4 bits). El rango de valores para n bits varía desde [-2n-1+1 , 2n-1-1].

EJEMPLO

7)10 = 0111)C-1

-5)10 = 1010)C-1

Álvaro Pablos Lamas


3.3.- Complemento a 2 (o complemento a la base menos 2)

Los números positivos se representan igual que en magnitud y signo, los negativos se
representan mediante el complemento a dos de sus correspondientes positivos. El complemento a
dos de un número binario se obtiene cambiando los ceros por unos y los unos por ceros y
sumándole 1 o bien, cambiando los unos por ceros y los ceros por unos empezando por la
izquierda, hasta llegar al último 1 a partir del cuál se dejará igual incluido éste. El rango de valores
que pueden representarse va desde [-2n-1 , 2n-1-1], así para n=8 se tendría [-128,127].

EJERCICIO RESUMEN

4.- Operaciones numéricas en coma fija


Vamos a suponer que la coma decimal está situada a la derecha, y que por tanto operamos
con números enteros. Veamos como se realizan las operaciones aritméticas en cada una de las
representaciones vistas.

4.1.- Suma aritmética de números binarios


La suma se realiza como ya conocemos del sistema decimal, bit a bit, de derecha a izquierda,
transmitiendo los arrastres o acarreos al siguiente dígito de la izquierda, hasta concluir con todas
las cifras. Hay que tener en cuenta que los números pueden tener igual o distinto signo; de hecho
pueden presentarse los siguientes casos:

a) Ambos sumandos son positivos


En este caso la representación en los tres convenios vistos coincide, y la suma se realiza de igual
forma en los tres. Si se produce rebose (el bit de signo del número resultante de la suma cambia),
significa que el resultado de la suma necesita un bit más para su representación, habría que añadir
un cero a la izquierda, éste será el nuevo bit de signo.
Tomaremos para los ejemplos números representados con n=8 bits.

Álvaro Pablos Lamas


En las sumas en que el bit de signo cambia es que se ha producido Rebose, esto es, el
resultado necesita un bit más (en este caso 9 bits) para poder ser representado correctamente.

b) Ambos sumandos son negativos


La suma se realiza de forma distinta en cada convenio. También puede producirse rebose, en cuyo
caso el bit correspondiente a la posición del signo cambiará.
b1) Magnitud y signo
Se suman las magnitudes, y se añade el bit de signo al número resultante. Puede producirse
rebose (si se produce acarreo final al sumar las magnitudes), lo que significa que el resultado
necesita un bit más para poder representarse correctamente.
Se suman magnitudes, el signo se añade al resultado. El signo no se opera con el número.

b2) Complemento a 1
El bit de signo debe operarse con el resto del número. Si produce rebose el valor del bit en la
posición del signo cambia. Significa que se requiere un bit más para representar el número, se
añadirá un bit =1 (signo) al resultado. Por otra parte, el acarreo final, que siempre va existir ya que
los dos últimos bits sumados son los de signo que valen 1, debe sumarse al resultado.

Álvaro Pablos Lamas


b2) Complemento a 2
Igual que en el caso anterior el bit de signo también se suma, el acarreo final se desprecia, y si hay
rebose, se debe añadir un bit de signo (1) a la izquierda del número.

c) Los números a sumar tienen signos distintos


Si tienen signos distintos la operación a realizar es, en realidad, una resta. En caso de magnitud y
signo, deben restarse las magnitudes (siempre la de menor magnitud de la mayor) y poner el signo
del mayor. En caso de complemento a 1 y complemento a 2 la resta puede realizarse mediante una
suma, el número negativo vendrá expresado mediante el complemento a 1 o en complemento a 2
del valor absoluto del número. Estas representaciones son las más comunes, pues ahorran
circuitería al no implementarse la resta como una operación distinta de la suma.
En cualquier caso, al sumar dos números de distinto signo nunca se va a producir rebose.

c1) Magnitud y Signo


Se resta las magnitudes (la menor de la mayor) y se pone el signo del número más grande.

Álvaro Pablos Lamas


c2) Complemento a 1
Se suman los números, incluyendo el signo en dicha operación, el valor resultante en la posición
del signo es el signo del resultado. Si hay acarreo final debe sumarse al valor resultante y
despreciarse posteriormente. No va a producirse rebose pues se están sumando dos números de
signos diferentes y el resultado siempre es menor que cualquiera de las sumandos.

c3) Complemento a 2
Se suman los números, incluyendo el signo en dicha operación, el valor resultante en la
posición del signo es el signo del resultado. Si hay acarreo final se desprecia. No va a producirse
rebose pues se están sumando dos números de signos diferentes y el resultado siempre es menor
que cualquiera de las sumandos.

Álvaro Pablos Lamas


4.2.- Diferencia aritmética de números binarios
La resta de dos números enteros presentará los mismos casos que la suma, la única
diferencia es que el signo del número que va restado cambiará antes de realizar la operación.
Si los números están representados en el formato de M y S pueden darse dos casos:
a) Si los números quedan de signo diferente se restan magnitudes (la menor de la mayor) y se
pone el signo del mayor.
b) Si los números quedan del mismo signo se suman magnitudes y se pone el signo resultante.
1) Magnitud y Signo

2) Complemento a 1
El sustraendo (número que va restado) debe ser negado realizando el complemento a 1 del
mismo; posteriormente los números deben ser sumados. Si se produce acarreo final este no se
desprecia sino que se suma al resultado. El acarreo, después de sumado, se desprecia.

Álvaro Pablos Lamas


3) Complemento a 2
En complemento a 2 el acarreo se desprecia siempre. Al igual que en el caso anterior, nunca se
produce rebose

4.3.- Multiplicación y división


Tanto la multiplicación como la división binaria se realizan de la misma forma que la decimal,
teniendo en cuenta que la base utilizada es 2. Los signos se tratan por separado.

Álvaro Pablos Lamas


5.- Representación en coma flotante
Se caracteriza por tres ideas principales
1.- Método de representación de números reales adaptable al orden de la magnitud del
valor a representar .
2.- Se obtiene mayor precisión que con la coma fija.
3.- Permite representar un rango mucho mayor de números (determinado por los valores
límite que puede tomar el exponente).

Una representación en coma flotante se compone de tres campos:

r = m . be
Siendo:
r: valor real del número a representar

m: mantisa o significando, dígitos significativos del número.

b: base del sistema de representación

e: exponente, orden de magnitud del significando.

El mínimo y máximo valor posible del exponente determinan el rango de valores representables.

5.1.- Rango de representación

Álvaro Pablos Lamas


Ejemplo de operación en coma flotante

5.2.- Formatos de representación en coma flotante

IBM 360/370 (simple precisión)

DEC PDP 11/Vax

IEEE754

Álvaro Pablos Lamas


6.- Códigos de detección y corrección de errores
Imaginemos necesitamos transmitir 8 símbolos (A,B,C,D,E,F,G,H) y se codifican sin
redundancias, se necesitan n=3 bits. Ahora añadimos un bit de redundancia al inicio.

De esta forma si recibimos un código que empiece por 1 podremos afirmar que se ha
producido error.

6.1.- TIPOS DE CÓDIGOS DETECTORES


1.- Códigos de control de paridad
1.1.- Paridad par: número par de unos.
1.2.- Paridad impar: número impar de unos.

2.- Códigos de relación constante (cuenta fija de unos).


3.- Otros códigos especiales.

6.2.- DISTANCIA HAMMING


La distancia Hamming dH se define entre dos palabras de un código como el número de bits
en que difieren dichas palabras.

Palabra 1 : 110111
Palabra 2 : 001101

dH (palabra1,palabra2)=4 bits

Álvaro Pablos Lamas


DISTANCIA MÍNIMA HAMMING

Se denomina distancia mínima de Hamming Dm a la menor distancia Hamming encontrada,


entre todas las palabras que forman un código.

Si a un código de distancia mínima 1 se le añade un bit de control de paridad, (por ejemplo


se añade un bit para que el número de unos de la palabra siempre sea par) se obtiene un código
de distancia mínima 2, con el que puede detectarse error en un bit, aunque no corregirlo.

6.3.-Código Hamming para la detección y corrección de errores


El código Hamming se realiza sobre un código ya construido, el cual representa los símbolos
del alfabeto fuente utilizando el número de bits (k) estrictamente necesarios para la información, y
añadiendo a cada palabra-código los (r) bits de control de paridad. Cada bit control se genera con
el valor adecuado (0 o 1) para que exista paridad par en un subconjunto determinado de bits de la
palabra Hamming en el que dicho bit de control está incluido.

Lo primero que se calcula es el número de bits de control, que se establece a partir de la


siguiente relación:

2r ≥ k + r + 1
Una vez determinado el número de bits de control, hay que establecer la posición que
ocuparán en la palabra Hamming y calcular el valor que toman para cada palabra código.

7.- INNOVACIÓN: REPRESENTACIÓN CUÁNTICA DE LA INFORMACIÓN

Origen de la computación cuántica


A medida que evoluciona la tecnología, aumenta la escala de integración y caben más transistores
en el mismo espacio; así se fabrican microchips cada vez más pequeños, y es que, cuanto más
pequeño es, mayor velocidad de proceso alcanza el chip. Sin embargo, no podemos hacer los chips
infinitamente pequeños. Hay un límite en el cual dejan de funcionar correctamente. Cuando se
llega a la escala de nanómetros, los electrones se escapan de los canales por donde deben circular.
A esto se le llama efecto túnel. Una partícula clásica, si se encuentra con un obstáculo, no puede
atravesarlo y rebota. Pero con los electrones, que son partículas cuánticas y se comportan como
ondas, existe la posibilidad de que una parte de ellos pueda atravesar las paredes si son demasiado
finas; de esta manera la señal puede pasar por canales donde no debería circular. Por ello, el chip
deja de funcionar correctamente. En consecuencia, la computación digital tradicional no tardaría
en llegar a su límite, puesto que ya se ha llegado a escalas de sólo algunas decenas de nanómetros.
Surge entonces la necesidad de descubrir nuevas tecnologías y es ahí donde entra la computación
cuántica en escena.
La idea de computación cuántica surge en 1981, cuando Paul Benioff expuso su teoría para
aprovechar las leyes cuánticas en el entorno de la computación. En vez de trabajar a nivel de
voltajes eléctricos, se trabaja a nivel de cuanto. En la computación digital, un bit sólo puede tomar

Álvaro Pablos Lamas


dos valores: 0 ó 1. En cambio, en la computación cuántica, intervienen las leyes de la mecánica
cuántica, y la partícula puede estar en superposición coherente: puede ser 0, 1 y puede ser 0 y 1 a
la vez (dos estados ortogonales de una partícula subatómica). Eso permite que se puedan realizar
varias operaciones a la vez, según el número de qubits.
El número de qubits indica la cantidad de bits que pueden estar en superposición. Con los bits
convencionales, si teníamos un registro de tres bits, había ocho valores posibles y el registro sólo
podía tomar uno de esos valores. En cambio, si tenemos un vector de tres qubits, la partícula
puede tomar ocho valores distintos a la vez gracias a la superposición cuántica. Así, un vector de
tres qubits permitiría un total de ocho operaciones paralelas. Como cabe esperar, el número de
operaciones es exponencial con respecto al número de qubits. Para hacerse una idea del gran
avance, un computador cuántico de 30 qubits equivaldría a un procesador convencional de 10
teraflops (millones de millones de operaciones en coma flotante por segundo), cuando
actualmente las computadoras trabajan en el orden de gigaflops (miles de millones de
operaciones).

Problemas de la computación cuántica


Uno de los obstáculos principales para la computación cuántica es el problema de la decoherencia
cuántica, que causa la pérdida del caracter unitario (y, más específicamente, la reversibilidad) de
los pasos del algoritmo cuántico. Los tiempos de decoherencia para los sistemas candidatos, en
particular el tiempo de relajación transversal (en la terminología usada en la tecnología de
resonancia magnética nuclear e imaginería por resonancia magnética) está típicamente entre
nanosegundos y segundos, a temperaturas bajas. Las tasas de error son típicamente
proporcionales a la razón entre tiempo de operación frente a tiempo de decoherencia, de forma
que cualquier operación debe ser completada en un tiempo mucho más corto que el tiempo de
decoherencia. Si la tasa de error es lo bastante baja, es posible usar eficazmente la corrección de
errores cuánticos, con lo cual sí serían posibles tiempos de cálculo más largos que el tiempo de
decoherencia y, en principio, arbitrariamente largos. Se cita con frecuencia una tasa de error límite
de 10-4, por debajo de la cual se supone que sería posible la aplicación eficaz de la corrección de
errores cuánticos.
Otro de los problemas principales es la escalabilidad, especialmente teniendo en cuenta el
considerable incremento en qubits necesarios para cualquier cálculo que implica la corrección de
errores. Para ninguno de los sistemas actualmente propuestos es trivial un diseño capaz de
manejar un número lo bastante alto de qubits para resolver problemas computacionalmente
interesantes hoy en día.

Hardware para computación cuántica


Aún no se ha resuelto el problema de qué hardware sería el ideal para la computación cuántica. Se
ha definido una serie de condiciones que debe cumplir, conocida como la lista de Di Vinzenzo, y
hay varios candidatos actualmente.

Condiciones a cumplir
El sistema ha de poder inicializarse, esto es, llevarse a un estado de partida conocido y controlado.

Álvaro Pablos Lamas


Ha de ser posible hacer manipulaciones a los qubits de forma controlada, con un conjunto de
operaciones que forme un conjunto universal de puertas lógicas (para poder reproducir cualquier
otra puerta lógica posible).
El sistema ha de mantener su coherencia cuántica a lo largo del experimento.
Ha de poder leerse el estado final del sistema, tras el cálculo.
El sistema ha de ser escalable: tiene que haber una forma definida de aumentar el número de
qubits, para tratar con problemas de mayor coste computacional.

Álvaro Pablos Lamas


8.- Bibliografía
- Introducción a los computadores (Pedro Luis Aguilar Mateos e Isabel García Muñoz)
- Código de Hamming
- Representación en Coma Fija
- Representación en coma flotante

VIDEOS
- Código de Hamming en clase
- Ejercicio de detección y corrección de errores (Hamming)
- Odisea: Ordenadores cuánticos
- Explicación de la Computación Cuántica
- Redes: Ordenadores Cuánticos

Álvaro Pablos Lamas