Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Arquitectura de Computadores
Sistemas de Numeración V.2.4
MSc. Ing. Enrique Latorres
Edición 2012
Página 1 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Indice
Arquitectura de Computadores ........................................................................1
1 Sistemas de Numeración..........................................................................3
1.1 Sistemas de Numeración...................................................................3
1.2 Numeración Decimal .........................................................................3
1.2.1 Suma ..........................................................................................4
1.2.2 Resta ..........................................................................................5
1.2.3 Multiplicación..............................................................................7
1.2.4 División.......................................................................................7
1.2.5 Otras Operaciones .....................................................................8
1.2.6 Otras Convenciones ...................................................................8
1.3 Sistemas de Numeración Posicional .................................................8
1.3.1 Sistemas de Numeración Posicional y las Culturas..................12
1.4 Binario .............................................................................................13
1.4.1 Conversiones de Binario a Decimal..........................................13
1.4.2 Conversiones de Decimal a Binario..........................................14
1.4.3 Aritmética Binaria .....................................................................17
1.4.4 Ejercicios ..................................................................................21
1.5 Octal ................................................................................................22
1.5.1 Ejercicios: .................................................................................23
1.6 Hexadecimal....................................................................................23
1.6.1 Ejercicios: .................................................................................25
1.7 Propiedades de Binario, Octal y Hexadecimal.................................25
1.7.1 Ejercicios ..................................................................................27
1.8 Sistema Posicional Base n ..............................................................27
1.8.1 Ejercicios ..................................................................................29
1.9 Otros sistemas de numeración ........................................................30
2 Sistemas de Numeración Basados en Computadora .............................31
2.1 Conceptos Previos ..........................................................................31
2.1.1 Unidades de Cantidad de Información .....................................33
2.2 Enteros (sin signo)...........................................................................35
2.2.1 Ejercicios ..................................................................................37
2.3 Punto Fijo o Enteros con Signo .......................................................37
2.3.1 Módulo y Signo.........................................................................37
2.3.2 Complemento a uno .................................................................39
2.3.3 Complemento a dos .................................................................40
2.3.4 Modelos de Exceso ..................................................................47
2.3.5 Conclusiones............................................................................48
2.4 Decimal............................................................................................50
2.4.1 Ejercicios ..................................................................................54
2.5 Punto Flotante .................................................................................55
2.5.1 Representación de Punto Flotante ...........................................58
2.5.2 Ejercicios ..................................................................................59
2.6 Otros Conceptos..............................................................................60
2.6.1 Ejercicios ..................................................................................60
3 Referencias.............................................................................................60
Página 2 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
1 Sistemas de Numeración
Este capítulo trata de responder a las siguientes preguntas (entre otras):
¿Qué es binario? ¿Y octal, y hexadecimal? ¿Qué otras formas de
representación de números hay? ¿Cómo convierto entre ellas? ¿Cómo
podemos hacer operaciones aritméticas? ¿Qué es un sistema de numeración
posicional? ¿Qué ventajas me da? ¿Para qué sirve? ¿Cuándo un sistema de
numeración no es posicional?
Página 3 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
forma que cada dígito es ocupado por algunos de estos diez símbolos y su
valor se calcula multiplicado por potencias de diez según su posición con
respecto a la coma o punto decimal [11].
Valor=…+Sn*basen+Sn-1*basen-1+...+S1*base1+S0*base0+S-1*base-1+S-2*base-2+…
1.2.1 Suma
¿Y cómo es que sumamos?
Página 4 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
1.2.2 Resta
¿Y cómo es que restamos?
Bueno, esto está muy relacionado a cómo sumamos. Y si bien puede haber
algunas pequeñas diferencias en cómo implementamos el mecanismo
(depende de cómo lo hayamos recibido en la escuela o cómo lo hayamos
elaborado luego), el mecanismo a grandes rasgos es el siguiente.
Página 5 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Página 6 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
1.2.3 Multiplicación
Cuando multiplicamos tomamos el multiplicando y lo multiplicamos por cada
uno los dígitos del multiplicador desplazados según la posición del dígito. Así
si tenemos un 5 en la columna 2 (recordemos que las unidades son la
columna cero) del multiplicador, entonces estamos multiplicando al
multiplicando por 500 (por esto el desplazamiento por dos lugares). Luego
cada una de estas multiplicaciones (por un solo dígito) las sumamos para
obtener un resultado.
8 7 2 multiplicando
1 3 5 * multiplicador
1 1 0 1 0 0
0 04 3 6 0 =872*5
0 2 6 1 6 0 =872*30
0 8 7 2 0 0 =872*100
1 1 7 7 2 0 resultado
Normalmente los 0 no los escribimos, pero los marcamos aquí por claridad y
previendo que en el futuro vamos a crear máquinas que hagan este cálculo y
precisamos que estén explícitos.
1.2.4 División
Tomamos del dividendo el conjunto de los dígitos más significativos que sea
mayor que el divisor. Luego vemos cuántas veces cabe el divisor en la
fracción del dividendo que estamos considerando. Esa cantidad la escribimos
como el digito más significativo en el resultado. Multiplicamos el divisor por
este dígito y ese resultado se lo restamos a la parte considerada del
dividendo. El resto se pone inmediatamente abajo del segmento considerado
y se baja el siguiente dígito que no estaba en el fragmento de dividendo
considerado anterior. Este pasa a ser nuestro nuevo dividendo considerado.
Y repetimos el procedimiento. Pero si esta vez el dividendo considerado es
Archivo:C:\Documents and Settings\enrique\Mis documentos\curso de arquitectura de computadores\Arquitectura de Computadores Sistemas de
Numeración V.2.4.doc, Autor:latorres, Creac.:20/08/2012 22:24:00, Impres.:20/08/2012 23:26:00, Guard.: enrique.
Página 7 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
menor que el divisor, se pone cero en el dígito del resultado y se baja otro
dígito del divisor que se agrega a la derecha del dividendo considerado.
5 2 2 4 6 1 7 3
5 1 9 3 0 2
0 0 3 4 6
3 4 6
0
Página 8 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
la base de cada parte del número es diferente, por ejemplo las HH horas
tienen base 24 mientras que los minutos mm tienen base 60. Esto hace
dificultoso el operar con estas cantidades ya que hay que considerar bases
diferentes para las diferentes alturas del número.
Los sistemas de números que nos interesarán son los posicionales con raíz o
base común o única, esto es sistemas de numeración posicionales
homogéneos. Esto es que todos los dígitos del número responden a la
misma base.
Nb=(Sb,Rb)
Dónde s0 tiene el valor cero, s1 tiene el valor uno y sb-1 tiene el valor (b-1) y
sucesivamente. La forma de representar cada dígito es arbitraria, se podría
hacer cualquier tipo de garabato en la medida de que se pudiera distinguir un
dígito sx de otro sy., donde x sea diferente de y. Pero para nuestro caso
utilizaremos la secuencia {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C , D , E , F, G, … },
o sea que usamos los dígitos del sistema decimal y cuando necesitemos más
usaremos las letras del alfabeto. No vamos a trabajar con bases que vayan
más allá de la Z [17], pero si fuera necesario una alternativa es generar
dígitos encerrándolos entre algún delimitador que no se confunda con otros
valores y representaciones, por ejemplo entre “/#” y “/”. Esto nos permite
generar nuevos dígitos (e.g. Z56+156= /#37/56 = /#1036/56) de forma que los
dígitos dentro de estos delimitadores se consideren como un dígito posicional.
Ver un caso particular en el sistema Bi-quinario [18].
Valor= Sn*bn+Sn-1*bn-1+...+S1*b1+S0*b0+S-1*b-1+S-2*b-2
Página 9 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Donde el valor de cada Sx es reemplazado por el valor del símbolo del dígito
en esa posición, dentro del número considerado y en la base en que se está
calculando el Valor completo.
Con este sistema cada número puede ser representado de una y solo una
manera porque la suma de sus respectivas bases multiplicada por el dígito de
mayor valor es siempre la siguiente base menos uno (e.g. 999910=1000010-
110).
Nótese que los símbolos para los dígitos comienzan en cero y terminan
en uno menos que la base. Esto va a ocurrir en forma sistemática con
los sistemas de números con los que vamos a trabajar ya que el valor
cero (0) será una opción valida a considerar en cada rango. Reflexione
sobre este tema.
O sea que 120123 tiene el mismo valor que 14010 y ambos representan la
cantidad ciento cuarenta.
Página 10 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
valor=…+Sn*basen+Sn-1*basen-1+...+S1*base1+S0*base0+S-1*base-1+...+S-m*base-m+…
O sea que 12,123 tiene el mismo valor que 5,5555…10 y representan ambos
la cantidad cincuenta novenos (50/9).
110112=2710
Página 11 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
1101,12=13,510
110,112=6,7510
11,0112=3,37510
Página 12 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
“The Culture”, una sociedad ficticia creada por el escritor escocés Banks usa
un sistema nonario o base 9 [34]. Varias otras novelas describen culturas
ficticias que usan sistemas de numeración septenarios o base 7 [35], o con
sistema undecimales o base 11 [36] como en la novela “Contacto” de Carl
Sagan.
1.4 Binario
El sistema de numeración binario [ 41 ] es un sistema posicional de
numeración que tiene base dos y por lo tanto se basa en solo dos símbolos
para los dígitos:
S2={0,1}
base=2
Por lo que si se quiere representar algún valor solo va a poder ser con
combinaciones de 1 y 0. Esto es de especial interés para los informáticos ya
que la electrónica de conmutación de alta velocidad nos permite codificar los
números binarios mediante estados de conexión y desconexión de circuitos
eléctricos en forma muy fácil y a muy alta velocidad. Esto implica que es muy
eficiente representar números binarios mediante circuitos electrónicos.
1011012=1*25+0*24+1*23+1*22+0*21+1*20=1*32+0*16+1*8+1*4+0*2+1*1=45
Decimos que para este número el bit o dígito 5 (en la posición 5) es el más
significativo y el bit 0 (en la posición 0) es el menos significativo. Bit es un
término que proviene de la abreviación en inglés de “Binary Digit” (bit) o sea
dígito binario.
Página 13 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Página 14 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Podemos hacer un paralelo de este método con Ruffini. Para el caso binario,
el valor de un número binario corresponde con un polinomio donde la variable
x vale 2 y los coeficientes son solo 1’s y 0’s.
Página 15 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Las potencias de dos negativas solo son necesarias si hay parte fraccional a
convertir. (¡Si! ¡Este método convierte tanto la parte entera como la
fraccional de una sola vez!!!). Simplemente se siguen las potencias
menores que cero a la derecha del punto o coma decimal. Nótese que ya
podemos poner la posición de la coma de las unidades.
2n-1
Ejemplos:
Este procedimiento funciona también para otras bases. Simplemente hay que
ver cuantas veces cabe la potencia seleccionada en el resto considerado. En
el segundo renglón se pone la cantidad de veces que cabe y en el resto se
Página 16 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
1.4.3.1 Suma
La suma de números se hace según la siguiente tabla de verdad, teniendo en
cuenta que para cada dígito podemos "llevarnos uno" (CARRY OUT) o tener
"uno que nos llevábamos" (CARRY IN) del anterior, de la misma forma que
en suma decimal, pero ahora solo con dos dígitos. Otro nombre para estos
valores es el de “acarreo”.
CASO 0 1 2 3 4 5 6 7
el que traigo 0 0 0 0 1 1 1 1
sumando 1 0 0 1 1 0 0 1 1
sumando 2 0 1 0 1 0 1 0 1
nos
llevamos 0 0 0 1 0 1 1 1
uno
RESULTADO 0 1 1 0 1 0 0 1
Podemos sumar 108 más 58. Tendríamos entonces, luego de convertir los
números a binario, la siguiente situación:
0 1 1 1 1 0 0 0 0
0 0 1 1 0 1 1 0 0 +
0 0 0 1 1 1 0 1 0
0 1 0 1 0 0 1 1 0
Esta situación refleja todas las combinaciones posibles que se ven en la tabla
de verdad de la suma. Arriba los números indican la unidad que nos llevamos
de la cuenta (acarreo) con el dígito anterior, o sea en CARRY OUT (co)de la
cuenta anterior que se transforma en el CARRY IN (ci) de la cuenta actual.
Los ceros marcados con rojo representan dígitos implícitos, o sea que
normalmente consideramos que el dígito menos significativo se opera con
cero como dígito de la operación anterior (ci) o que hay acarreo en la última
operación.
co ci
Archivo:C:\Documents and Settings\enrique\Mis documentos\curso de arquitectura de computadores\Arquitectura de Computadores Sistemas de
Numeración V.2.4.doc, Autor:latorres, Creac.:20/08/2012 22:24:00, Impres.:20/08/2012 23:26:00, Guard.: enrique.
Página 17 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
a +
b
r
Si miramos la tabla con más detenimiento vemos que lo que la tabla debe
responder es cuantos unos hay en las entradas y devolver el número en dos
dígitos binarios que son lo que nos llevamos co y el resultado r.
Caso a b ci co r Cantidad
de unos
0 0 0 0 0 0 0
1 0 0 1 0 1 1
2 0 1 0 0 1 1
3 0 1 1 1 0 2
4 1 0 0 0 1 1
5 1 0 1 1 0 2
6 1 1 0 1 0 2
7 1 1 1 1 1 3
1.4.3.2 Resta
La resta de números se hace según la siguiente tabla de verdad, teniendo en
cuenta que para cada dígito podemos "pedir prestado uno" (BORROW OUT)
o tener "uno que prestamos" (BORROW IN) del anterior, de la misma forma
que en la resta decimal, pero con dos dígitos binarios.
CASO 0 1 2 3 4 5 6 7
uno que
0 0 0 0 1 1 1 1
prestamos
minuendo 0 0 1 1 0 0 1 1
sustraendo 0 1 0 1 0 1 0 1
pido
prestado 0 1 0 0 1 1 0 1
uno
RESULTADO 0 1 1 0 1 0 0 1
Podemos restar 150 menos 60. Tendríamos entonces, luego de convertir los
números a binario la siguiente situación:
0 1 1 1 1 0 0 0 0
0 1 0 0 1 0 1 1 0 -
0 0 0 1 1 1 1 0 0
0 0 1 0 1 1 0 1 0
Esta situación refleja todas las combinaciones posibles que se ven en la tabla
de verdad de la resta. Arriba los números indican la unidad que nos pidió
prestado la cuenta con el dígito anterior, o sea en BORROW OUT (bo) de la
cuenta anterior que se transforma en el BORROW IN (bi) de la cuenta actual.
Los ceros marcados con un círculo representan dígitos implícitos, o sea que
normalmente consideramos que el dígito menos significativo se opera con
Página 18 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
bo bi
a -
b
r
1.4.3.3 Multiplicación
Una de las ventajas de la multiplicación binaria son las tablas que hay que
aprender: solo la del cero y la del uno.
a b a*b
0 0 0
0 1 0
1 0 0
1 1 1
Página 19 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
1 1 1 1 1510
x 1 1 1 1 1510
1 1 0 1 0 1 0 0
1 0 1 1 1 1
1 1 0 1 1 1 0
1 1 1 1 1 0 0
1 1 1 1 1 0 0 0
1 1 1 0 0 0 0 1 22510
1 0 0 1 1 0 1 0 1 1 1 0 1 0 X10
x 1 0 1 0 1 1 1 Y10
1 1 1 0 1 1
1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 0 0 0
1 0 0 1 1 0 1 0 1 1 1 0 1 0
1 0 0 1 1 0 1 0 1 1 1 0 1 0 0
1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
11 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0
1 1 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 0 Z10
1.4.3.4 División
La división es también sencilla. A diferencia de la división en decimal (o en
cualquier otra base) donde tenemos que ver cuantas veces cabe el divisor en
la fracción del dividendo considerado, como estamos trabajando en binario,
solo hay dos opciones: 1 o 0. Esto significa que el divisor entra o no entra en
la fracción del dividendo considerado (cabe o no cabe, es mayor o igual o es
menor).
Página 20 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
1 1 0 1 1 1 0 0 1 0 1 0
1 0 1 0 1 0 1 1 0
0 0 1 1 1 1
1 0 1 0
0 1 0 1 0
1 0 1 0
0 0 0 0 0
Vemos que las cuentas con números binarios son muy sencillas y son
relativamente fáciles de resolver con operaciones lógicas (que veremos más
adelante). Además los ejemplos aquí presentados son con números enteros
pero se aplica lo mismo para números con parte decimal (a la derecha de la
coma).
1.4.4 Ejercicios
1 Convertir de base:
85,7510->X2
22110->X2
23510->X2
110110,10102->X10
111100002->X10
11112->X10
111112->X10
1111112->X10
11111112->X10
3 Convertir de base:
10002->X10
100002->X10
1000002->X10
10000002->X10
Página 21 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
1.5 Octal
El sistema de numeración octal tiene base ocho y por lo tanto se basa en
ocho símbolos:
S8={0,1,2,3,4,5,6,7}
base=8
Valor=Sn*8n+Sn-1*8n-1+...+S1*81+S0*80
Por lo que si quiero representar algún valor solo va a poder ser con
combinaciones de 0 a 7.
El número 3358 o también 335o (letra ‘O’ de octal), equivale a 22110 o 221d
en decimal. El subíndice o la letra sirven para indicar la base de cada número
en forma explícita. Así calculamos: 3358=3*82+3*81+5*80=3*64+3*8+5*1=
22110.
Una cosa importante es que podemos reemplazar tres dígitos binarios por
cada dígito octal, lo que nos permite una conversión rápida. Siempre hay que
reemplazar a los dígitos binarios de tres en tres partiendo desde la coma
decimal, hacia la derecha o la izquierda según sean los decimales o las
unidades.
Binario Octal
000 0
001 1
010 2
011 3
100 4
101 5
Archivo:C:\Documents and Settings\enrique\Mis documentos\curso de arquitectura de computadores\Arquitectura de Computadores Sistemas de
Numeración V.2.4.doc, Autor:latorres, Creac.:20/08/2012 22:24:00, Impres.:20/08/2012 23:26:00, Guard.: enrique.
Página 22 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
110 6
111 7
1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 …
Vemos un ejemplo.
1 1 1 0
0 3 7 5 +
0 5 7 7
1 1 7 4
1.5.1 Ejercicios:
1.6 Hexadecimal
El sistema de numeración hexadecimal tiene base 16 y por lo tanto se basa
en 16 símbolos:
Archivo:C:\Documents and Settings\enrique\Mis documentos\curso de arquitectura de computadores\Arquitectura de Computadores Sistemas de
Numeración V.2.4.doc, Autor:latorres, Creac.:20/08/2012 22:24:00, Impres.:20/08/2012 23:26:00, Guard.: enrique.
Página 23 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
S16={0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}
base=16
Valor=Sn*16n+Sn-1*16n-1+...+S1*161+S0*160
Por lo que si quiero representar algún valor solo va a poder ser con
combinaciones de 0 a 9 y A hasta F.
Una cosa importante es que podemos reemplazar cuatro dígitos binarios por
cada dígito hexadecimal, lo que nos permite una conversión rápida. Siempre
hay que reemplazar a los dígitos binarios de cuatro en cuatro partiendo desde
la coma decimal, hacia la derecha o la izquierda según sean los decimales o
las unidades.
Binario Hexadecimal
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F
Página 24 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Vemos un ejemplo.
0 1 1 0
0 5 6 C +
0 5 A 6
0 B 1 2
1.6.1 Ejercicios:
Convierta de base los siguientes números:
1. A6F5,C516->X2
2. 122110->X16
3. A5F816->X10
4. 111000110110,10102->X16
Página 25 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Página 26 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
1.7.1 Ejercicios
Valorn=Sm*nm+Sm-1*nm-1+...+S1*n1+S0*n0+...
Por lo que si quiero representar algún valor solo va a poder ser con
combinaciones de los símbolos s0 a sn-1.
Página 27 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Página 28 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
X
Se realiza la división entera obteniendo (X div nm-1)=valor, y (X % nm-1)=resto.
Entonces ponemos el valor en el segundo renglón y en el tercero, al lado de
X ponemos el resto.
nm-1
valor
X resto
Una vez concluido, se pasa a la columna de la derecha y se considera al
resto como el nuevo X y a la siguiente menor potencia como el nuevo nm-1. Y
se continúa con el procedimiento hasta que quede resto=0 o hasta que haya
alcanzado un nivel satisfactorio de precisión (suficiente cantidad de dígitos
luego de la coma). Si se alcanza el resto cero antes de llegar a las unidades,
se rellena los lugares faltantes con ceros (s0).
1.8.1 Ejercicios
Convertir a otras bases:
Base 3 Base 5 Base 9 Binario
12011,0123
1343,31245
703,39
101100111,00012
2123
324305
529
0010000010002
Página 29 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Página 30 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Página 31 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Mayor
Cantidad
Denominación número
de bits
representable.
Nibble, Semibyte, Cuarteto. 4 15
Byte, Octeto. 8 255
Word, Palabra. 16 65535
Doubleword, palabra doble. 32 4294967295
Quadword, Palabra cuádruple. 64 18446744073709551615
Paragraph, Octaword, Párrafo,
128 2128-1 = 3,40289…*1038
Palabra óctuple.
Doubleoctaword, Doble palabra
256 2256-1= 1,157920…*1077
óctuple.
Cada uno de estos tamaños se relaciona con un cierto tipo de datos o ciertos
tipos de datos se acotan a estructuras con estos tamaños. Todos los modelos
que veamos en adelante se acotarán a estructuras de estos tamaños
estándar. El objetivo de esto es garantizar la compatibilidad de las estructuras
de intercambio de información.
Página 32 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Cuando se hizo el 8086 de Intel, este tenía registros de 16 bits. Para ese
tiempo este era el tamaño de los registros de datos, por lo que Word
quedó como la definición de los datos de 16 bits. Otros procesadores
tenían datos de 32 bits y esos otros fabricantes usaban el término word
para 32 bits. Cuando salio el 80386 de 32 bit, la palabra word se había
afianzado como significado de la estructura de 16 bits dentro de los
usuarios de Intel. Así que 32 bits pasó a ser doublewords [ 46 ]. La
supremacía de los procesadores Intel y sus derivados en el mercado
hizo que la terminología de Intel se impusiera entre los desarrolladores.
Página 33 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Como curiosidad estas unidades (en potencias de 2) son las que se usan
para dimensionar la memoria RAM de un computador, pues como veremos
más adelante, la forma de aumentar los tamaños está directamente
relacionada con la representación de números binarios. Pero esto no ocurre
así en la organización de los discos rígidos y algunos otros medios de
almacenamiento. Esto se debe a que la organización de la estructura interna
de los discos no está relacionada a los sistemas binarios. Esto hace que, en
particular los fabricantes de discos, no utilicen las nociones de potencias de
dos en múltiplos de diez sino que utilicen directamente las potencias de diez.
Así un disco de un Terabyte podrá almacenar 1.000.000.000.000 bytes y no
1099511627776, por lo tanto tiene un 9,05% menos que si se midiera de la
otra forma. En general para medir cantidad de información, o tamaños de
archivos se utilizará el modelo de potencias de dos múltiplos de diez [47][48].
Entonces el uso de estas unidades puede presentar alguna ambigüedad
sobre cual de los dos sistemas se está utilizando.
1
Ver: URL=http://www.facebook.com/pages/The-Official-Petition-to-Establish-Hella-as-the-SI-Prefix-for-
1027/277479937276?v=info
Página 34 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Página 35 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Para diferenciarlo de otros tipos de datos que veremos más adelante, se los
nombra también como “Enteros sin signo”. Entonces para estos el concepto
de Overflow o desborde puede identificarse en que se precisa al menos un
bit más del que da la estructura para representar el resultado (explicitado en
el carry out), directamente si conocemos los valores decimales con que se
está operando, o en que el resultado decimal está fuera del rango
representable (ya sea positivo mayor al máximo representable o negativo
luego de la resta).
Página 36 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
En todos los casos el menor número representable es cero. Por lo tanto solo
trabajamos con los enteros positivos.
2.2.1 Ejercicios
1 Calcule los resultados de los números enteros de 16 bits
representados, los resultados se esperan en enteros de 16 bits
pero representados en base 10. Verifique si hay desborde, de lo
contrario dé la solución. Nótese que los números se expresan en
hexadecimal pero representan números binarios de un tamaño
determinado (16 bits en este caso) dentro de un computador.
AFB516 + 504C16 = base10
AFB516 + 504E16 = base10
AFB516 - 504C16 = base10
504C16 - AFB516 = base10
E13B16 + 007416 = base10
0FB516 - 504C16 = base10
0FB516 - 054C16 = base10
Página 37 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Tiene como ventaja que maneja un rango simétrico de valores, esto es que
tiene igual cantidad de valores positivos que negativos (excluído el cero) y
por lo tanto en mayor positivo tiene igual valor absoluto que el menor
negativo. Con el modelo de módulo y signo, para n bits se puede representar
los valores desde 0 hasta +/-2n-1-1. Esto se debe a que se dispone de un bit
menos para la representación del módulo.
Otra cosa a notar es que se tiene una representación doble del cero. Se
representa +0 y -0. Por ejemplo en 8 bits tendríamos para el cero
+010=000000002, -010=100000002.
Uno de los problemas que tiene este modelo es que el orden de los valores
no coincide con el orden de su representación, si los consideramos como
números enteros sin signo. Esto implica que para su comparación se debe
utilizar circuitos diferentes para un caso y otro. Otro problema es que
complica los procedimientos de las operaciones aritméticas. Si se desea
sumar un número positivo a un número negativo, es necesario cambiar el
orden de los sumandos y hacer una resta. Otras combinaciones de signo
Página 38 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Una de las ventajas de este modelo es que los números tienen un orden que
coincide con el orden de los números binarios con los que se representan, si
se invierte el signo. Por ejemplo para decir si dos números en complemento a
dos son uno mayor que otro, alcanza con comparar los valores
Página 39 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Analice todas las situaciones y describa todos los casos donde se debe
hacer correcciones a los resultados. Describa como detectaría el
desborde en las operaciones con Complemento a uno.
Como resultado este modelo es mejor que el anterior pero igual necesitamos
un tratamiento especial para corregir los valores especiales y ese circuito es
de una complejidad media.
Página 40 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Vemos que los valores positivos tienen la misma interpretación que en los
otros modelos, y en los negativos sus valores son los de Complemento a 1
desplazados en un lugar (la corrección que se necesitaba de sumar o restar
uno para ciertos casos de sumas y restas en Complemento a 1).
Entonces el menos uno (-1) sería una secuencia de n unos, para una
estructura de n bits. Para 8 bits tenemos la representación que se presenta a
continuación:
Decimal Binario
127 01111111
126 01111110
... ...
3 00000011
2 00000010
1 00000001
Página 41 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
0 00000000
-1 11111111
-2 11111110
-3 11111101
... ...
-127 10000001
-128 10000000
Como vemos los números positivos son iguales a los enteros, pero
restringidos al rango 2n-1; +127 para el caso de 8 bits.
Valor positivo 0 0 0 0 0 1 0 1 =5
Invierto bit a bit 1 1 1 1 1 0 1 0
Sumo 1 1 1 1 1 1 0 1 1 =-5
También podemos comenzar con los bits desde las unidades (derecha) y
dejamos todos los dígitos cero hasta el primer uno que aparezca. Este podría
ser el primer dígito si ese mismo es uno. Los otros bits a la izquierda se
invierten.
Por ejemplo el primer uno del bit cero pasa directo y todos los otros bits a la
derecha se invierten.
Valor positivo 0 0 0 0 0 1 0 1 =5
Sumo 1 1 1 1 1 1 0 1 1 =-5
Página 42 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
el dígito no cambia) y llevo un uno a la cuenta siguiente (o sea que sumo uno
al número hecho con todos los bits a la izquierda. Si el segundo bit es uno,
entonces al sumarle uno lo cambio de uno a cero y me llevo una. Si el
segundo bit es cero entonces al sumarle una que me llevaba lo convierto en
uno, como estaba invertido entonces quedó en uno, no cambió. Esto implica
que mientras los dígitos menos significativos sean todos ceros, todo ellos
pasan sin cambiarse, y hasta el primer uno del modelo.
Valor positivo a b c d 1 0 0 0 =X
Sumo 1 ¬a ¬b ¬c ¬d 1 0 0 0 =-X
Este procedimiento nos permite convertir un número positivo en el mismo
valor negativo. Y También un negativo convertirlo en positivo.
También podemos sumarle el número con todos unos (n bits en uno) y luego
invertir el resultado.
Página 43 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Esto implica que los valores de los números en complemento a dos, con
relación a los bits más significativos, es la siguiente:
Página 44 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
1001 9 -7
1010 A -6
1011 B -5
1100 C -4
1101 D -3
1110 E -2
1111 F -1
0000 0 0
0001 1 1
0010 2 2
0011 3 3
0100 4 4
0101 5 5
0110 6 6
0111 7 7
Esto implica que para números expresados como complemento a dos cuyo
nibble más significativo esté entre F y 8, sabemos que esos valores son
negativos. Además que los valores cercanos a Fxxx son negativos cercanos
al cero, mientras que los valores con 8xxx son negativos con valor absoluto
cercanos al límite del rango de representación. Para los positivos podemos
hacer un razonamiento similar pero más trivial.
Esto nos permite analizar con mayor facilidad cuando tendremos un desborde
en las sumas y restas realizadas en complemento a dos.
Página 45 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Sobre la base de este problema podemos analizar qué es lo que sucede con
el acarreo de los signos y cuando tenemos desborde en la suma o la resta de
complemento a dos.
Si se analizan todos los escenarios para por ejemplo la suma, vemos que
tendremos desborde siempre que el ci sea diferente que el co. También
cuando el signo de A es igual al signo de B y es diferente del ci.
ovr 0 0 0 1 1 0 0 0
co 0 0 0 1 0 1 1 1
ci 0 0 0 0 1 1 1 1
A 0 0 1 1 0 0 1 1
B 0 1 0 1 0 1 0 1
R 0 1 1 0 1 0 0 1
Nótese que esto es relevante solo para el cálculo del bit signo y no para
ningún otro de los bits.
Página 46 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
EXCESO A 2n-1
Este sistema no utiliza bit de signo. Simplemente se adiciona un
"desplazamiento" al número a representar. Si fuera para 8 bits, se debe
adicionar 2n-1 al número y queda un equivalente entero.
Página 47 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
EXCESO A 2n-1-1
Este sistema no utiliza bit de signo. Simplemente se adiciona un
"desplazamiento" al número a representar. Si fuera para 8 bits, se debe
adicionar 2n-1 -1 al número y queda un equivalente entero. Si tengo que
convertir el número -10 en 8 bits, le agrego 127 (2n-1-1) y obtengo
11710=011101012. Simplemente da lo que el modelo anterior menos uno. Si
tengo que hacer el proceso inverso, entonces le sumo 2n-1+1, para 8 bits es
100000012. Este modelo se usa en otros modelos numéricos que veremos
más adelante, por ejemplo para representar los exponentes en punto flotante.
2.3.5 Conclusiones
Debemos entender a estos diferentes modelos como diversas formas de
interpretar el significado de las combinaciones de unos y ceros representadas
en la memoria de una computadora.
Página 48 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
0001 1 1 1 1 -6 -7
0010 2 2 2 2 -5 -6
0011 3 3 3 3 -4 -5
0100 4 4 4 4 -3 -4
0101 5 5 5 5 -2 -3
0110 6 6 6 6 -1 -2
0111 7 7 7 7 0 -1
1000 8 -0 -7 -8 1 0
1001 9 -1 -6 -7 2 1
1010 A -2 -5 -6 3 2
1011 B -3 -4 -5 4 3
1100 C -4 -3 -4 5 4
1101 D -5 -2 -3 6 5
1110 E -6 -1 -2 7 6
1111 F -7 -0 -1 8 7
2.3.5.1 Ejercicios
Página 49 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
2.4 Decimal
Muchos sistemas usan codificación decimal para guardar los números en
memoria y en disco. Consiste en guardar uno a uno los digitos decimales
codificados en cuatro bits. Para eso se usa codificación BCD (Binary Coded
Decimal) en alguna de sus variantes aunque generalmente la natural. En
general estos modelos de numeración no están estandarizados y hay
pequeñas variaciones de como se implementan.
Página 50 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
El número 13 sería 00012 00112, mientras que como entero de 8 bit sería
000011012.
Página 51 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
dependiendo que el nivel eléctrico del cable esté por encima o por debajo de
un cierto nivel medio. Si hay un nivel agregado este se puede “confundir”.
Decimal BCD
Aiken
0 0000
1 0001
2 0010
3 0011
4 0100
5 1011
6 1100
7 1101
8 1110
9 1111
SUMA EN BCD
En este caso se hace una suma binaria de cada dígito y se verifica si el
resultado de la suma de dos dígitos supera al 9. Si es así se hace una
corrección para ajustar el acarreo y el resultado a BCD. Muchos
procesadores tienen una operación para la suma BCD y/o la
corrección/conversión a BCD de una suma binaria.
Página 52 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Otro formato de decimal zonado utiliza los digitos hexadecimales C (+) y D (-)
para el dígito decimal menos significativo así nuestro número -1234 se vería
en binario:
11110001 11110010 11110011 11010100
Y en hexadecimal sería:
F1 F2 F3 D4
En algunas convenciones se codifican los números BCD zonados
permitiendo reemplazar al indicador de positivo C con cualquier valor entre
(C,A,F y E), en otra convención se usa el valor 3; y para el negativo D se
acepta tanto B o D.
Página 53 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
2.4.1 Ejercicios
1 ¿Cómo se hace la conversión de ASCII a BCD? (Vea la tabla
ASCII)
2 ¿Cómo se hace la suma de números BCD? (Busque información
sobre la instrucción DAA y DAS de los procesadores Intel)
3 Represente en una tabla todas las combinaciones de números
binarios de 4 bits y asocie a cada combinación los dígitos
decimales de Aitken y de Exceso 3 que le corresponda. Cuente la
cantidad de unos y de ceros en cada representación. ¿Qué
conclusiones saca?
4 Convertir a representación en memoria el número 37510 a BCD
Zonado de 5 byte más 1 de signo.
5 Convertir a representación en memoria el número -177710 a BCD
Empaquetado de Intel.
6 Convertir a representación en memoria el número -101010 a BCD
Zonado de Cobol.
7 Convertir a representación en memoria el número +100000000010 a
BCD Empaquetado de 4 byte más 1 de signo.
8 Convertir a representación en memoria el número 653410 codificado
Aitken.
Archivo:C:\Documents and Settings\enrique\Mis documentos\curso de arquitectura de computadores\Arquitectura de Computadores Sistemas de
Numeración V.2.4.doc, Autor:latorres, Creac.:20/08/2012 22:24:00, Impres.:20/08/2012 23:26:00, Guard.: enrique.
Página 54 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Página 55 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
valores del exponente serían negativos y igual a tantos lugares como se haya
corrido la coma.
Ahora hay que formar el número de punto flotante. El signo del significando
se codifica por separado en el bit más significativo de la estructura. A
continuación le sigue el exponente codificado a Exceso a (2n-1-1), según el
formato del punto flotante (precisión) será el tamaño del exponente (n). Luego
a continuación se pone el significando normalizado, y en la mayoría de los
casos como el primer bit siempre es 1, este no se lo pone sino que queda
implícito.
SHORT REAL
El modelo de menor precisión es el SHORT REAL o real corto. Es un formato
de 4 bytes (32 bits) con exponente de 8 bit y significando de 23 bit con el uno
implícito. Para nuestro ejemplo de -1365,7510= -1,0101010101112*1010102,
tenemos: signo=1, exponente desplazado=127+10=100010012 , y
significando con (1,...) implícito = 0101010101110000000.
Página 56 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Los otros formatos IEEE-754 todos cumplen con esta misma estructura a no
ser por las siguientes variaciones:
Short Short Double Double Quad Intel
Extended Extended Precision Extended
Exponente(max) +127 1023 +1023 +16383 +16383 +16383
Exponente(min) -126 1022 -1022 -16382 -16382 -16382
Exponente +127 +1023 +1023 +16383 +16383 +16383
Desplazamiento
Precisión (#bits) 24 32 53 64 113 64
Uno implícito Sí No Sí No Sí Explícito
espec. espec.
Total de Bits 32 43 64 80 128 80
Bits de signo 1 1 1 1 1 1
Bits de 8 11 11 15 15 15
exponente
Nótese que no para todos los tipos el uno del significando es implícito.
Nótese que los casos de exponente con todos los bits a uno o todos los bits a
cero son casos especiales y se hace una interpretación diferente de los
números.
Los exponentes en todos los casos se codifican con exceso a 2n-1-1, con n
según la cantidad de bits del exponente.
Página 57 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Página 58 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
0 1 0 0 0 = 2
0 1 0 0 1 = 2,5
0 1 0 1 0 = 3
0 1 0 1 1 = 3,5
0 1 1 0 0 = 4
0 1 1 0 1 = 5
0 1 1 1 0 = 6
0 1 1 1 1 = 7
Para los negativos es lo mismo pero con el signo cambiado.
Si ponemos en una regla todos los valores representados vemos que varios
números tienen un equiespaciado si tienen el mismo exponente. Pero cuanto
mayor el exponente, mayor es el espaciado entre dos número consecutivos.
Vemos también que no se representan infinitos números como es el caso de
los reales, sino que se aproximan por rangos.
Para ello se reserva el valor más pequeño del exponente, de forma que los
números representados con el exponente todo en ceros, se calcula como si
fuera igual al del exponente inmediato anterior. Y este caso se interpreta con
ese valor de exponente (en nuestro caso en vez de usar el valor -1 para 00
usaríamos el valor 0) y el número se interpretaría con cero implícito en vez de
uno implícito.
2.5.2 Ejercicios
1 Convertir a Pfloat Short Real y obtener la representación
hexadecimal de los siguientes números: -3,2187510;
118,687510; 0,437510; -0,3437510.
2 Identificar el número decimal de punto flotante de las siguientes
representaciones hexadecimales de short real: C0400000,
4296C000, 42670000.
3 Obtenga los números más grandes y más pequeños representables
con cada formato de punto flotante.
4 Obtenga la representación hexadecimal del siguiente número de
punto flotante en formato IEEE-754 de precisión simple: -30,0.
5 Convertir los siguientes:
-0,9375-> float hex
15,625-> float hex
C13C0000 hex -> float 10
Archivo:C:\Documents and Settings\enrique\Mis documentos\curso de arquitectura de computadores\Arquitectura de Computadores Sistemas de
Numeración V.2.4.doc, Autor:latorres, Creac.:20/08/2012 22:24:00, Impres.:20/08/2012 23:26:00, Guard.: enrique.
Página 59 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
Estos temas escapan a los objetivos de este curso y son parte de materias de
cálculo numérico y análisis numérico.
2.6.1 Ejercicios
1 Analizar para al menos tres lenguajes de programación cual es la
representación de los tipos de punto flotante, los naturales, los
enteros, y para cada uno de estos en qué cantidad de bits se
representan.
2 Estudie los estándares de representación de números en los
diferentes lenguajes y arquitecturas de computación..
3 Referencias
[1] http://en.wikipedia.org/wiki/Chinese_number_gestures
[2] http://en.wikipedia.org/wiki/Colombian_numerals
[3] http://en.wikipedia.org/wiki/Chisanbop
[4] http://en.wikipedia.org/wiki/Quipu
[5] http://en.wikipedia.org/wiki/Number_names
[6] Juan Grompone; "La danza de Shiva. Libro II. Las sociedades feudales"
Editorial La Flor del Itapebí, Montevideo, 2009.
[7] Ver http://en.wikipedia.org/wiki/Roman_numerals
[8] http://en.wikipedia.org/wiki/Chinese_numerals
[9] http://es.wikipedia.org/wiki/Numeración_japonesa
[10] Ver en Wikipedia los siguientes:
http://en.wikipedia.org/wiki/Decimal
http://en.wikipedia.org/wiki/Arabic_numerals
http://es.wikipedia.org/wiki/Números_arábigos
[11] http://es.wikipedia.org/wiki/Separador_decimal
[12] http://es.wikipedia.org/wiki/Escalas_numéricas_larga_y_corta
[13] http://en.wikipedia.org/wiki/Decimal_separator
[14] http://en.wikipedia.org/wiki/Numeral_system
[15] http://es.wikipedia.org/wiki/Raíz_mixta
[16] http://es.wikipedia.org/wiki/Sistema_de_numeración
[17] http://es.wikipedia.org/wiki/Sistema_alfanumérico
[18] http://en.wikipedia.org/wiki/Bi-quinary_coded_decimal
[19] http://es.wikipedia.org/wiki/Dígitos_significativos
[20] Originalmente publicado en http://geocities.com/indianlanguages-2000/
Ahora en http://www.ilustrados.com/tema/2810/Consideraciones-sobre-
numeracion-charruas.html
Página 60 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay
http://www.monografias.com/trabajos11/consnum/consnum.shtml
[21] http://en.wikipedia.org/wiki/Urnfield_culture_numerals
[22] http://es.wikipedia.org/wiki/Sistema_quinario
[23] http://en.wikipedia.org/wiki/Senary
[24] http://es.wikipedia.org/wiki/Sistema_vigesimal
[25] http://en.wikipedia.org/wiki/Octadecimal
[26] http://es.wikipedia.org/wiki/Sistema_sexagesimal
[27] http://es.wikipedia.org/wiki/Sistema_duodecimal
[28] http://en.wikipedia.org/wiki/Base_24
[29] http://en.wikipedia.org/wiki/Pentadecimal
[30] http://en.wikipedia.org/wiki/Septemvigesimal
[31] http://en.wikipedia.org/wiki/Decimal
[32] http://web.media.mit.edu/~stefanm/society/som_final.html
[33] http://en.wikipedia.org/wiki/Ngiti
[34] http://en.wikipedia.org/wiki/Nonary
[35] http://en.wikipedia.org/wiki/Septenary
[36] http://en.wikipedia.org/wiki/Undecimal
[37] http://es.wikipedia.org/wiki/Base64
[38] http://en.wikipedia.org/wiki/Base_62
[39] http://en.wikipedia.org/wiki/Tetradecimal
[40] http://en.wikipedia.org/wiki/Base_30
[41] http://es.wikipedia.org/wiki/Binario
[42] http://es.wikipedia.org/wiki/Sistema_Inglés
[43] http://edition.cnn.com/TECH/space/9909/30/mars.metric.02/
[44] http://en.wikipedia.org/wiki/Integer_(computer_science)
[45] http://en.wikipedia.org/wiki/Word_(computing)
[46] Leiterman, James ;32/64-BIT 80 x 86 Assembly Language Architecture,
ISBN:1598220020; Wordware Publishing © 2005 (568 pages),
Chapter 3. Section 2 History.
[47] http://en.wikipedia.org/wiki/Kilobyte
[48] http://en.wikipedia.org/wiki/Orders_of_magnitude_(data)
[49] http://en.wikipedia.org/wiki/Binary_prefix
[50] http://es.wikipedia.org/wiki/Notaci%C3%B3n_polaca_inversa
Página 61 de 61