Sei sulla pagina 1di 61

Universidad ORT del Uruguay

Arquitectura de Computadores
Sistemas de Numeración V.2.4
MSc. Ing. Enrique Latorres

Edición 2012

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 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

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 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?

Esto es fundamental, pues los sistemas de numeración y en particular la


numeración binaria son las bases para la codificación y representación de
información dentro de las computadoras.

1.1 Sistemas de Numeración


Un número es la representación de una cantidad o el concepto de cantidades
específicas. Así por ejemplo el concepto de que haya tres unidades de cierto
tipo, tres manzanas, tres pelotas, etc. se asocia a un símbolo tal como podría
ser alguno de los siguientes: 3, “three”,”tres”, “trois”, 三, 参, 叁, ººº, III, ٣, … Esto
implica que independientemente del símbolo que se use, siempre estamos
representando un mismo concepto de cantidad. Vamos a ver en este curso
otros sistemas de representar esas mismas cantidades.

Un sistema de numeración es un sistema para expresar números mediante


símbolos, principalmente de tipo gráfico o escrito. Diferentes culturas han
desarrollado variadas formas de hablar de números u otras formas de
expresión, como ser señas y gestos [1][2][3], etc. Han desarrollado formas
diversas de representarlos, incluso en otras formas diferentes de la escrita o
impresa [ 4 ]. Dentro del ámbito de una cierta cultura, estas formas de
expresión están muy relacionados al modelo de representación escrito y/o
hablado que esa cultura utiliza [ 5 ], independientemente que esta cultura
disponga de los conceptos que actualmente llamamos naturales, enteros,
racionales o reales. Si bien no tiene por que ser siempre así. Algo de esto se
puede ver en las particularidades de los sistemas de representación
numéricos de varias culturas y civilizaciones antiguas [6].

Un modelo de numeración conocido y antiguo es el Sistema de Numeración


Romano [7]. Si bien es un modelo relativamente sencillo para representar
cantidades, este tiene varias dificultades para el cálculo de operaciones y
otros tratamientos de las cantidades. Otros modelos de interés son el
Sistema de Numeración Chino [8] y su derivado, el Japonés [9]. Pero algunos
de estos tienen complejidades especiales a la hora de operar con estos
números.

1.2 Numeración Decimal


El sistema utilizado por nosotros actualmente es el sistema de Numeración
Decimal o Arábigo [10]. Este consiste en un conjunto de diez símbolos S10={0,
1, 2, 3, 4, 5, 6, 7, 8, 9} que se combinan para representar cantidades, de
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 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].

Nuestro conjunto de símbolos S10, y nuestra base=10, son evaluados según


en qué posición aparezca en el número. Así el valor de un número se calcula
por la siguiente fórmula:

Valor=…+Sn*basen+Sn-1*basen-1+...+S1*base1+S0*base0+S-1*base-1+S-2*base-2+…

Donde Sx son símbolos de S10, y x es la posición del símbolo en el número.

Para nuestro caso el número1365,75 representa el valor calculado de la


siguiente manera: 1 x 103 + 3 x 102 + 6 x 101 + 5 x 100 + 7 x 10-1 + 5 x 10-2 .
Este valor explícitamente se indica como 1365,7510 (también 1365,75d, con d
por decimal) para que se sepa que está representado por el sistema de
numeración decimal (el subíndice 10 indica que está representado en base
10).

Este sistema no está limitado en la cantidad de dígitos que se pueden utilizar


y permite agregar dígitos tanto a la derecha como a la izquierda del punto
decimal.

En cuanto a la aritmética decimal es la habitual que hemos aprendido desde


la escuela, sumar, restar, multiplicar y dividir, sabiendo las tablas de cada uno
de los símbolos utilizados. Esto nos da una idea de que si tenemos más o
menos símbolos en un sistema de numeración, vamos a tener más o menos
tablas que aprender.

1.2.1 Suma
¿Y cómo es que sumamos?

Para sumar alineamos los dígitos de la misma potencia de los sumandos y


comenzamos por la columna de los dígitos menos significativos. Si queremos
sumar dos números A y B, tomamos los dígitos a y b, y los sumamos
obteniendo el resultado r. Pero podría ocurrir que la suma de a y b necesite
de más de un dígito, o sea si a y b suman más de diez. En ese caso nos
llevamos uno a la cuenta siguiente, de lo contrario no nos llevamos nada.
Vamos a llamar a este término co (Carry-out) y consideraremos que será cero
cuando no nos llevamos nada, y uno cuando si nos llevamos. Ahora para la
próxima columna existe la posibilidad de que nos hayamos llevado algo y que
deba ser considerado al momento de sumar a y b. Entonces hay que además
sumar el ci (Carry-in).

Así nuestro problema en cada columna de una suma es el siguiente:


co ci
a
+ b
r

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 4 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

Entonces recibimos a, b, ci y obtenemos co y r de forma que se verifica la


siguiente igualdad: ( a + b + ci = co * base + r ), siendo la base=10 por ser
decimal. Pero se entiende que para cualquier otra base sería la misma
situación.

Así si sumamos 975 + 577 tenemos el siguiente planteo:


1 1 1 0
0 9 7 5 +
0 5 7 7
1 5 5 2
Asumimos que la primera columna no recibe nada que se haya llevado de
antes. Normalmente no lo anotamos pero por claridad y otros aspectos que
veremos en el futuro explicitamos con un 0 que no nos llevamos nada.

Haciendo las operaciones tenemos: Cinco y siete da doce, bajamos dos y


nos llevamos uno. Pasamos a la siguiente columna. Uno más siete más siete
da quince, entonces bajamos cinco y nos llevamos uno. Pasamos a la
siguiente columna. Uno más nueve más cinco da quince, entonces bajamos
cinco y nos llevamos uno. Pasamos a la siguiente columna. En esta columna
solo tenemos el uno que nos llevamos de la columna anterior. Hay ceros a la
izquierda implícitos (que en este caso los explicitamos con un 0). Sumamos y
da uno. El resultado es 155210.

Si pensamos como hacemos la suma de los dígitos, es simplemente tener


claro cómo es la secuencia de los números y contar tantos lugares siguientes
como indica uno de los sumandos y comenzando por el siguiente al otro de
los sumandos.

Así si sumamos 7 + 5 usamos la secuencia siguiente, y pariendo del siguiente


al siete (el ocho) contamos cinco lugares y llegamos al doce, entonces
7+5=12.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 …
Con el tiempo sucede que nos aprendemos de memoria algunas de estas
relaciones y luego ya no precisamos contar para obtener la suma de los
dígitos, pues las sabemos de memoria.

Este mecanismo que ya tenemos tan incorporado es en realidad el


mecanismo general para sumar números en cualquier base para sistemas de
numeración posicional. Vamos a ver más adelante como este mecanismo es
el mismo para binario, hexadecimal o cualquier otra base.

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.

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 5 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

Para restar alineamos los dígitos de la misma potencia del numerador y


denominador y comenzamos por la columna de los dígitos menos
significativos, de la misma forma en que lo hacemos con la suma. Si
queremos restar dos números A (numerador) y B (denominador), tomamos
los dígitos a y b, y restamos b a a, obteniendo el resultado r. Pero podría
ocurrir que b es mayor que a, entonces r daría negativo. Los números
asumimos que tienen todos sus dígitos con el mismo signo, por lo que esta
situación no es aceptable. Entonces decimos que es necesario pedirle
prestado a la columna de la izquierda. Esto lo indicamos poniendo arriba de
la columna de la izquierda un uno en la variable bo (Borrow-out). Ahora para
la próxima columna existe la posibilidad de que le hayamos pedido algo o que
no. Esto lo representaos dando a bi el valor uno o cero. Entonces hay que
además restar el bi (Borrow-in).

Así nuestro problema en cada columna de una resta es el siguiente:


bo bi
a
- b
r
Entonces recibimos a, b, bi y obtenemos bo y r de forma que se verifica la
siguiente igualdad: ( (bo * base + a) - b - bi = r >= 0 ), siendo la base=10 por
ser decimal. Elegimos bo para asegurarnos de que r sea positivo.

Así si restamos 975 - 589 tenemos el siguiente planteo:


0 1 1 0
0 9 7 5 -
0 5 8 9
0 3 8 6
Asumimos que la primera columna no recibe nada que le hayan pedido
prestado de antes. Normalmente no lo anotamos, pero igual que con la suma,
por claridad y otros aspectos que veremos en el futuro explicitamos con un 0
que no nos pidieron nada prestado. Cinco menos nueve da negativo, así que
pedimos prestado y ahora tenemos quince (el uno que pedimos y el cinco del
numerador) y le restamos el nueve (denominador). El resultado es seis.
Pasamos a la siguiente columna. Tenemos siete menos ocho, menos uno
que me pidieron prestado. Esto da negativo, así que pedimos prestado.
Ahora tenemos diecisiete menos ocho menos uno y nos da ocho.
Pasamos a la siguiente columna. Tenemos nueve menos cinco menos uno
que me pidieron prestado y nos da tres. Esto da positivo, así que no pedimos
prestado.

Si luego de la última columna todavía siguiéramos pidiendo prestado, eso


indicaría que el denominador es mayor que el numerador (B>A).

Si pensamos como hacemos la resta de los dígitos, es similar a la suma pero


haciendo la cuenta regresiva. Debemos tener claro cómo es la secuencia de
los números y contar tantos lugares anteriores como indica el digito
denominador y comenzando por el anterior al numerador.

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 6 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

Así si restamos 12 - 5 usamos la secuencia siguiente, y pariendo del anterior


al doce (el once) contamos cinco lugares hacia los anteriores (en forma
decreciente) y llegamos al siete, entonces 12-5=7.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 …
Al igual de lo que sucede con la suma, con el tiempo nos aprendemos de
memoria estas relaciones y no precisamos contar para obtener la resta de los
dígitos, pues las sabemos de memoria.

Nuevamente, este mecanismo que ya tenemos tan incorporado es en


realidad el mecanismo general para restar números en cualquier base para
sistemas de numeración posicional. Vamos a ver más adelante como este
mecanismo es el mismo para binario, hexadecimal o cualquier otra base.

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.

Por ejemplo 872*135=117720

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.

Nuevamente este es el mecanismo general para números de sistemas


posicionales. La diferencia es que habría que aprenderse las tablas de
multiplicar para cada una de esas bases o hacer las sumas que sean
necesarias para obtener esas multiplicaciones.

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.

Si queremos dividir 52246 por 173, en el ejemplo tomamos el 522 y vemos


que 173 entra 3 veces en el. 173*3=519, restamos y nos queda 3. Bajamos el
4. Pero 173 no cabe en 34. Así que ponemos cero y bajamos un 6. Ahora 173
cabe dos veces en 346. El resto es cero. Allí paramos.

5 2 2 4 6 1 7 3
5 1 9 3 0 2
0 0 3 4 6
3 4 6
0

Como los casos anteriores, este es el mecanismo general para números de


sistemas posicionales. La diferencia fundamental es la base de numeración
que se considere.

1.2.5 Otras Operaciones


Otras operaciones como seno, coseno, logaritmos, etcétera, se puede
demostrar que es posible obtenerlas a partir de sumatorias de potencias con
coeficientes que cumplen relaciones particulares. Esto implica que se pueden
calcular o aproximar mediante operaciones de suma, resta, multiplicación y
división.

1.2.6 Otras Convenciones


Hay otras diferencias en el manejo de las unidades decimales entre los
diferentes países. A pesar de la misma forma de representarlos
numéricamente como números decimales, la forma de nombrarlos puede
diferir entre inglés y español. Por ejemplo el número 1,000,000,000.0 es un
"billion" en Inglés pero un billón en castellano es 1 000 000 000 000,0. Ver
[12]. Nótese también el cambio en la forma de separar los números para
facilitar la lectura y el punto o coma decimal [11][13].

Revise en la bibliografía qué está definido en los estándares


internacionales sobre la forma de presentar los números.

1.3 Sistemas de Numeración Posicional


Si bien hay muchos sistemas de numeración y estos han evolucionado de
diversas formas y modelos [14] los que nos van a interesar son los “Sistemas
Posicionales”. El sistema de Numeración Decimal visto antes es un caso
particular de los Sistemas de Numeración Posicionales. Vamos a ver que
este sistema nos permite generar una familia de modelos de representación
de números que nos facilitan la realización de operaciones aritméticas al
disponer de un mecanismo compartido por todos los modelos posicionales.

A modo de ejemplo los sistemas de “raíz mixta” son sistemas posicionales


que tienen base diferente según a que altura se presenten los dígitos [15],
por ejemplo si se presenta la fecha y hora de la forma AAAAMMDDHHmmSS,

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 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.

Entonces un sistema de numeración posicional de base única b que


llamaremos Nb consiste en:

Nb=(Sb,Rb)

Dónde Sb es el conjunto de símbolos para los dígitos, y Rb es el conjunto de


reglas que determinan cuáles son los números válidos y bien formados del
sistema [16]. Así definimos a Sb como una secuencia de símbolos

Sb={s0, s1, s2, …, sb-1}

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].

Reflexione sobre alternativas para este problema y cómo hacer que no


se pueda confundir el valor de los números con estas bases tan
grandes. ¿Qué pasaría si en vez de letras y números se utilizaran otros
símbolos, por ejemplo con caracteres chinos?

Entonces representamos un número en una base b concatenando dígitos


tomados de Sb e indicando el dígito de las unidades poniendo un punto o
coma a su derecha inmediata: SnSn-1...S1S0.S-1S-2

Así el valor de un número calculado en cualquier base se calcula con la


siguiente fórmula:

Valor= Sn*bn+Sn-1*bn-1+...+S1*b1+S0*b0+S-1*b-1+S-2*b-2

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 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).

Por inducción se puede probar que no hay dos representaciones para


un mismo número. Reflexione sobre este tema. Haga una demostración.

Así, si definiéramos un sistema posicional de base 3, entonces S3={0, 1, 2}.

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.

Si se nos presentara un número como el siguiente: 120123 ; esto significa que


el numero está representado en base 3, tiene 5 dígitos y estos dígitos están
dentro del rango 0 a 2 (o sea dentro del rango 0 a 3-1). Para calcular su valor
entonces aplicamos la fórmula:

120123=1*34 +2*33+ 0*32 +1*31 +2*30


120123=1*8110+2*2710+0*910+1*310+2*110=14010

O sea que 120123 tiene el mismo valor que 14010 y ambos representan la
cantidad ciento cuarenta.

Recordar que x0=1 para cualquier x. También que x-y=1/(xy). Reflexionar


sobre estas propiedades y verificarlas.

Dado un número en cualquier representación posicional, se llama “Dígito


significativo” a cualquier dígito que aporte valor a la evaluación del número.
Así los ceros en los extremos izquierdos y derechos del número no son
significativos a no ser que se encuentren entre otro dígito con valor diferente
de cero y la coma o punto decimal (en ese caso ya no estarían en el extremo
del numero representado). Los ceros dentro del número son significativos ya
que permiten asignar la posición y la interpretación de los otros dígitos
diferentes de cero que se encuentran en contraposición con estos al punto o
coma [19].

Dado un número en cualquier representación posicional, se llama “Dígito


más significativo” al dígito significativo más a la izquierda, diferente de cero.
Recordar que los dígitos cero puestos a la izquierda del dígito más
significativo son nada más que eso “Un cero a la izquierda”.

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 10 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

Dado un número en cualquier representación posicional, se llama “Dígito


menos significativo” al dígito significativo más a la derecha, diferente de
cero. Recordar que los dígitos cero puestos a la derecha del dígito menos
significativo (a la derecha de la coma) tampoco aportan valor.

Reflexione sobre estos casos en base a números en Decimal. Por


ejemplo el caso 03210,075010 e identifique digito más significativo,
menos significativo y dígitos no significativos.

Esto es válido para representación sin restricciones. Más adelante


veremos una interpretación diferente de estos conceptos para tipos
estructurados de representación con cantidades fijas de dígitos.

Además si quisiéramos podríamos continuar nuestro número a la derecha de


las unidades con valores fraccionales o a la izquierda del dígito más
significativo y seguiríamos evaluando nuestro número mediante este método:

valor=…+Sn*basen+Sn-1*basen-1+...+S1*base1+S0*base0+S-1*base-1+...+S-m*base-m+…

Por ejemplo, si se nos presentara un número como el siguiente: 12,123 ; esto


significa que el numero está representado en base 3, tiene 4 dígitos y 2 de
estos dígitos son menos que la unidad. Para calcular su valor entonces
aplicamos la fórmula:

12,123=1*31 +2*30+1*3-1 +2*3-2


12,123=310+210+1/3 +2/9=5,55555…10

O sea que 12,123 tiene el mismo valor que 5,5555…10 y representan ambos
la cantidad cincuenta novenos (50/9).

Nótese que el número periódico resultante de la fracción 50/9 en


decimal se representa como un número de una cantidad finita de dígitos
en base 3. Reflexione sobre este aspecto y en relación con otras bases.
¿Cuales relaciones de los números, quebrados y racionales les parece
que afectarán que un cierto número sea periódico o no al representarlo
en una determinada base? Repase el tema de números racionales visto
en secundaria.

Otra propiedad importante es que si en un número representado en una base


b, le corremos la coma o punto decimal para la derecha, eso es equivalente a
multiplicar el número por la base tantas veces como lugares se haya corrido.
A su vez si lo corremos hacia la izquierda es equivalente pero dividiendo por
la base.

Así correr la coma en decimal implica multiplicar o dividir al número por


potencias de 10 según cuantos lugares se haga la corrección.

En binario, correr la coma significa multiplicar o dividir entre dos:

110112=2710

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 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

Reflexiones sobre esto. Revise lo que sucede en decimal y pruebe y


compruebe los efectos con otras bases.

1.3.1 Sistemas de Numeración Posicional y las Culturas


Diferentes culturas han desarrollado sistemas posicionales basados en
diferentes bases. Muchos lenguajes actuales, si bien esas culturas ya no
representan los números de esa manera, mantienen vestigios de esos
sistemas de numeración en la forma como hoy nombran a todas o algunas
cantidades en particular. Las bases utilizadas fueron muy diversas y esto
muestra la conveniencia del sistema posicional, y como este fue inventado y
reinventado, una gran cantidad de veces, de diferentes formas y en múltiples
lugares.

Haroldo Chiossi Fernández Chaves sugiere que los charruas usaban un


sistema de base cuatro [20]. La lengua Chumash de los antiguos indígenas
de California, ahora extinta, usaban un sistema de base 4. La Cultura de los
Campos de Urnas usaba un sistema de numeración de base 5 o quinario en
el centro de Europa hacia el 1200 A.C.[21]. También varias culturas de África
siguen utilizando sistemas quinarios [22]. El sistema senario o base 6 fue
utilizado por culturas de Nueva Guinea [23].

Los vascos desarrollaron un sistema de numeración en base 20 o vigesimal


que luego impactó en varios idiomas de la región, como por ejemplo el
francés. Los Mayas y Aztecas y otras culturas americanas y también varias
culturas asiáticas desarrollaron sistemas con base 20 [24]. Algunas variantes
del calendario maya se pueden interpretar como combinando base 20 con
octadecimal o base 18 [25], resultando en cuentas de 360 días mediante dos
dígitos.

Los antiguos Babilonios desarrollaron un sistema de representación con base


60 o sexagesimal que afectó a todas las culturas que le siguieron. La ventaja
es que es posible dividirlo fácilmente entre 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30 y
60, y además permite representar fácilmente muchas fracciones comunes,
como 1/3 que en decimal se necesita poner 0,3333… pero en sexagesimal se
pondría 0,/#20/. Reflejos de ese modelo de representación se ve en la cuenta
de minutos y segundos y en la medición de ángulos que se usa hoy día [26].
El sistema sexagesimal está relacionado con el sistema duodecimal o base
12. Este tiene un conjunto de propiedades muy interesantes que lo hacen
muy práctico [27]. Algunas culturas nigerianas usan el sistema de base 12
[31]. Un caso similar es el base 24 del cual hay registros de culturas africanas
que lo han utilizado [ 28 ]. Algunas culturas de Papúa utilizaron sistemas
pentadecimales o de base 15 [ 29 ] y otras usan base 27 [ 30 ][ 31 ].
Aparentemente esto se basaba en el uso de múltiples partes del cuerpo (no
solo los dedos) para numerar [32]. El Ngiti de congo usa base 32 [33].

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 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.

La base 64 se utiliza en informática para diferentes formas de codificación de


información [37]. La diferencia de alfabetos entre varios idiomas hace que
algunas propuestas sean de base 62 [38]. El tetradecimal o cuadridecimal o
base 14 se usa para algunas aplicaciones de tratamiento de información [39].
La conveniencia matemática para ciertas operaciones hace que se sugieran
algunas de estas bases alternativas. Ejemplos hay en base 12, 24, y la
trigesimal o base 30 es un caso [40] entre otras.

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.

1.4.1 Conversiones de Binario a Decimal


Para convertir un número binario a decimal usamos la formula de Valor que
ya habíamos visto para los sistemas posicionales en general.

El número 1011012 (también 101101b, con b por binario) equivale a 4510. El


subíndice sirve para indicar la base de cada número en forma explícita.

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.

Como simplificación vemos que se cumple que 2n = 2n-1 *2 por lo tanto


podemos hacer la siguiente tabla:
210 29 28 27 26 25 24 23 22 21 20
1024 512 256 128 64 32 16 8 4 2 1

Esta tabla se podría extender tanto a la derecha como a la izquierda para


abarcar el peso de los dígitos de un número binario según su ubicación.
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 13 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

1.4.2 Conversiones de Decimal a Binario

1.4.2.1 Parte Entera


Este es el “Método de división por dos con resto”. Para convertir de decimal a
binario a un número, un método sencillo consiste en dividir sucesivamente al
número y los resultados por 2 hasta llegar a 1 como resultado:

Luego tomamos el resultado y los restos en orden inverso y tenemos


1011002=4410. De esta manera podemos convertir cualquier número entero a
binario rápidamente.

Al dividir entre 2 estamos dividiendo por la base al número binario.


Supongamos que tenemos un número decimal 5110 y este corresponde con
un número binario “secreto” que queremos descubrir S5S4S3S2S1S0.

Entonces dividir 51 entre dos nos da 25 y uno de resto. Esto es equivalente a


correr la coma un lugar a la izquierda en el número secreto. Nuestro número
se convierte en S5S4S3S2S1,S0. Esto significa que S5S4S3S2S1=25 y que S0=1 (el
resto de la división entera).

Si continuamos con este razonamiento tenemos que al dividir 25 entre dos,


obtenemos 12 y nos queda 1 de resto. Esto implica que S5S4S3S2=12 y que
S1=1.

Continuando el razonamiento con todos los demás dígitos y descubrimos que


S5S4S3S2S1S02=1100112=5110.

Si dividir entre 2 equivale a correr la coma un lugar en binario (base=2);


Reflexione sobre cómo usaría este método para convertir un número
entero en cualquier base a decimal.

Este método solo sirve para convertir la parte entera de un número


Reflexione sobre ello y explique porqué.

1.4.2.2 Parte Fraccional


Este es el “Método de multiplicación por dos con unidades”. Si queremos
convertir una parte fraccional decimal (menor que la unidad) en binaria,
comenzamos tomando la parte fraccional a la derecha de la coma y le
multiplicamos por dos. Esta multiplicación puede haber hecho que el nuevo
número tenga un uno en las unidades o no (si no tiene un uno entonces sería
un cero). Entonces tomamos el dígito de las unidades (1 o 0) y lo
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 14 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

“guardamos” o “registramos”, y tomamos la parte fraccional del resultado


(resto, con un cero en las unidades) para volver al proceso. El proceso
termina cuando tenemos suficientes bits de precisión o cuando el resto queda
cero. Por ejemplo convertimos el número 0,687510 a binario:

Básicamente en este caso lo que hacemos es el proceso inverso al anterior


(1.4.2.1 Parte Entera, pág.14). Tenemos todos dígitos menores a la unidad.
Al multiplicar por dos la coma se corre a la derecha de nuestro “número
secreto” y nos van apareciendo por las unidades los bits correspondientes a
cada posición. Ese bit lo retiramos quedándonos con la parte fraccional. Así
descubrimos que 0,687510 corresponde con 0,10112 al ir produciendo
sucesivamente los números 1.0112, 0.112, 1.12 y 12, rescatando el valor de
los dígitos binarios 0.S-1S-2S-3S-4= 0,10112 =0,687510

Si multiplicar por 2 equivale a correr la coma un lugar en binario


(base=2); Reflexione sobre cómo usaría este método para convertir un
número fraccional, menor que la unidad, desde cualquier base a decimal.

1.4.2.3 Método de Restos


Este es el “Método de comparación con potencias descendentes de dos con
resto”. En los sistemas posicionales y en binario en particular cada número
puede ser representado de una y solo una manera. Esto se debe a que la
suma de sus respectivas bases multiplicada por el dígito de mayor valor es
siempre la suma de las siguientes bases menos uno. Esto implica que para
una potencia específica de la base en la que está representado el número, un
conjunto de símbolos dan el valor superior a una cierta base y los otros dan el
valor inferior.

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.

Supongamos que queremos convertir el número X. Hacemos una tabla de


tres filas. Buscamos una potencia de dos (2n-1) tal que se cumpla que
2n>X>=2n-1. De esto sabemos que nuestro número va a tener n dígitos
significativos. Y que en la posición n-1 el dígito binario debe ser uno.

Reflexione sobre esto. Analice porqué podemos determinar cual va a


ser la posición del primer dígito diferente de cero al saber estos valores.

Acomodamos a X y las potencias de dos de la siguiente forma:

2n-1 2n-2 2n-3 … 21 20 2-1 … 2-j


,
X
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 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.

Ahora de izquierda a derecha vamos a ir haciendo el procedimiento que se


describe a continuación. Consideramos el valor X y la primera potencia que
estén en la forma que se indica en el siguiente cuadro.

2n-1

Si X>=2n-1; entonces ponemos un 1 en el segundo renglón y en el tercero, al


lado de X ponemos el resto de X-2n-1. En cambio si X<2n-1; entonces
ponemos un 0 en el segundo renglón y en el tercero, al lado de X ponemos el
mismo valor de X.

2n-1 Si X>=2n-1 X<2n-1


0/1 => se pone 1 => se pone 0
X resto => se pone X-2n-1 => se pone X

Una vez concluido, Pasamos a la columna de la derecha y consideramos al


resto como el nuevo X y a la siguiente menor potencia como el nuevo 2n-1. y
continuamos con el procedimiento hasta que quede resto=0 o hasta que haya
alcanzado un nivel satisfactorio de precisión (suficiente cantidad de bits).

Ejemplos:

a) Convertir 98710 a binario.


Vemos que 1024=210>98710>=29=512.
29=512 28=256 27=128 26=64 25=32 24=16 23=8 22=4 21=2 20=1
1 1 1 1 0 1 1 0 1 1
987 475 219 91 27 27 11 3 3 1 0
Entonces 98710=11110110112

b) Convertir 11,7510 a binario.


Vemos que 16=24>11,7510 >=23=8.
23=8 22=4 21=2 20=1 2-1=0.5 2-2=0.25
1 0 1 1, 1 1
11,75 3,75 3,75 1,75 0,75 0,25 0
Entonces 11,7510=1011,112

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

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 16 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

pone el resto de la división entera del resto anterior dividido el número de


veces.

Reflexione sobre este método. Pruébelo con números de algunas bases.

1.4.3 Aritmética Binaria

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.

En realidad en cualquier sistema de numeración la suma de dígitos cumple


con lo siguiente: co*base+r =a+b+ ci. Donde co*base+r son los dos dígitos
resultados de la operación. co*base+r significa en realidad para el caso
binario co*2+r pero en binario esto coincide con que representan un numero
de dos bits.

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

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 18 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

cero como dígito de la operación anterior (bi) y el último como resultado de la


última operación (bo).

Conceptualmente podemos pensar que el resultado en la tabla refleja la resta


del minuendo menos el sustraendo y la sustracción o "uno que prestamos"
(bi). Si la suma del sustraendo y la sustracción son mayores que el minuendo
vamos a tener sustracción (bo). Y el resultado es uno si tenemos cantidad
impar de unos en las entradas.

bo bi
a -
b
r

El resultado debe cumplir que (bo*2+a)-b-bi = r >= 0, donde se debe elegir bo


de forma que el resultado r sea positivo.

Nuevamente hacemos una tabla que refleje la respuesta de una columna


ante las diferentes combinaciones de a, b y bi. Para facilitar la evaluación
ponemos una copia de la columna bo a la derecha de la columna a ya que
estas se deben considerar como un número de dos dígitos.

Caso a<(b + bi) a b bi bo r Operación


bo:a-b-bi.=r
0 0 0 0 0 0 0 0-0-0=0
1 1 0 0 1 1 1 2-0-1=1
2 1 0 1 0 1 1 2-1-0=1
3 1 0 1 1 1 0 2-1-1=0
4 0 1 0 0 0 1 1-0-0=1
5 0 1 0 1 0 0 1-0-1=0
6 0 1 1 0 0 0 1-1-0=0
7 1 1 1 1 1 1 3-1-1=1

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

Y con ese conocimiento, y sabiendo como sumar, es muy fácil multiplicar


binario. Simplemente Sumamos el multiplicando multiplicado por uno a uno
los dígitos del multiplicador y los Sumamos desplazados según la posición
del dígito del multiplicador, igual que en decimal, solo que la tabla es más
fácil de aprender.

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 19 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

Veamos el siguiente caso. Los 0 indican posiciones que normalmente no


llenamos cuando su valor es cero, pero por claridad los marcamos. Luego
vemos que cuando estamos sumando la columna tercera tenemos cuatro
unos para sumar, esto nos da 1002, por lo que bajamos el primer cero y nos
llevamos 102. Igual que cuando sumamos en decimal puede suceder que nos
llevemos más de un dígito cuando sumamos muchos sumandos.

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

Nótese que si se multiplican dos números de 4 bits el resultado es de 8


bits. Reflexione sobre lo que ocurre cuando se multiplican dos números
de n y m bits respectivamente, o cuando ambos números son de n bits.

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

¿Qué números multiplicamos en el ejemplo anterior y cuál es el


resultado en decimal?

¿Qué sucede con el acarreo si tenemos muchos dígitos a sumar en la


multiplicación? Revise las cuentas y reflexione sobre el problema.
¿Hasta cuántos dígitos podría tener un acarreo según el tamaño del
multiplicador en binario? Haga un ejemplo del problema en decimal.

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).

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 20 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

Vemos la cantidad de dígitos que tiene el divisor. Tomamos esa cantidad de


dígitos o un dígito más de los más significativos del dividendo para que el
resultado sea mayor que el divisor. Si el divisor es mayor ponemos un uno en
el resultado y restamos el divisor al número tomado. Al resultado de la resta,
le bajamos un dígito del dividendo, el siguiente menos significativo de los
tomados hasta el momento, y al resultado de lo seleccionado lo comparamos
con el divisor. Si el divisor es menor, ponemos un cero en el resultado a la
izquierda del último dígito encontrado. Si el divisor es mayor, ponemos un
uno y nos quedamos con el resto del número tomado menos el divisor.
Continuamos de esta manera hasta que termine con los dígitos del dividendo.

Vemos 220 dividido 10:

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

2 ¿Si tenemos n unos consecutivos, en binario qué numero


representa? Halle la formula general.

3 Convertir de base:
10002->X10
100002->X10
1000002->X10
10000002->X10

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 21 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

4 ¿Si tenemos un uno seguido de n ceros consecutivos, en binario


qué numero representa? Halle la formula general.

5 ¿Cuál es el rango de representación si tenemos 20 bits para


representar números?
6 Convertir los siguientes números decimales a binario y hacer la
operación en binario:
a)111+75
b)53+23
c)235-221
d)23*5
e)65/13

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.

La conversión de decimal a octal se puede hacer por el método de las


divisiones/multiplicaciones. El método de conversión es igual al de los
números binarios solo que dividimos o multiplicamos por 8. En el caso del
método de las potencias y los restos, debemos ver cuantas veces entra la
potencia de la columna en el resto que se está calculando, si se hicieron las
cosas bien debiera dar siempre un número entre cero y siete.

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

Así 342,658 equivale a 011100010,1101012. Este método opera en ambos


sentidos. Tanto desde octal a binario como de binario a octal. Si es necesario
se pueden agregar ceros no significativos a un lado y a otro del número para
ajustar la cantidad de dígitos a que sea múltiplo de 3.

Recordar que la cuenta de dígitos debe comenzar siempre en la coma


decimal, tanto hacia un lado como al otro.

Reflexiones sobre esto. ¿Qué sucede si se particionara de a tres bits


pero comenzando desde otro lado? Pruebe que sucede.

La suma en octal es como cualquier sistema posicional. Pero hay que


considerar cual es la secuencia de números válidos.

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

Otra opción es convertir los dígitos a decimal, sumar en decimal y volver a


convertir a dígitos en octal. Por ejemplo 58+78 = 510+710 = 1210 = 810+410 = 148.

La resta es similar a los modelos posicionales. Reflexione sobre esto y


haga pruebas con números en base 8. Verifique los resultados.

1.5.1 Ejercicios:

Convierta de base los siguientes números:


1. 365,258->X2
2. 22110->X8
3. 4728->X10
4. 110110,10102->X8

Realice las siguientes operaciones:


1. 365,258+10110100,10102 =X8
2. 23410-3308 =X8
3. 4568+7310 =X8
4. 101101,1012+22,38 =X8

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.

El número 2AAC16 o 2AACh (h por hexadecimal) equivale a 1092410 o 10924d.


El subíndice o la letra sirven para indicar la base de cada número en forma
explícita. Es de notar que los dígitos A hasta F corresponden con los valores
1010 a 1510. Así calculamos: 2AAC16=2*163+10*162+10*161+12*160 =
2*4096+10*256+10*16+12*1= 1092410.

El método de conversión es igual al de los números binarios solo que


dividimos o multiplicamos por 16 o restamos o sumamos potencias de 16. La
conversión de decimal a hexadecimal se puede hacer por el método de las
divisiones/multiplicaciones. En el caso del método de las potencias y los
restos, debemos ver cuantas veces entra la potencia de la columna en el
resto que se está calculando, si se hicieron las cosas bien debiera dar
siempre un número entre cero y quince. Las unidades o restos de /#10/ a
/#15/ equivalen a los símbolos A hasta F por los que deben ser reemplazados
por la letra que corresponda (A=10, B=11, …, F=15.)

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

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 24 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

Así 2AAC,6516 equivale a 0010101010101100,011001012. Este método opera


en ambos sentidos. Si es necesario se pueden agregar ceros no significativos
a un lado y a otro del número para ajustar la cantidad de dígitos a que sea
múltiplo de 4.

Recordar que la cuenta de dígitos debe comenzar siempre en la coma


decimal, tanto hacia un lado como al otro.

Reflexione sobre esto. ¿Qué ocurriría si la cuenta de dígitos se


comenzara por otro lado? Pruébelo con algunos números.

La suma en hexadecimal es como cualquier sistema posicional. Pero hay que


considerar cual es la secuencia de números válidos.
1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 …

Vemos un ejemplo.
0 1 1 0
0 5 6 C +
0 5 A 6
0 B 1 2

Otra opción es convertir los dígitos a decimal, sumar en decimal y volver a


convertir a dígitos en hexadecimal. Por ejemplo A16+B16 = 1110+1210 = 2310 =
1610+710 = 1716.

La resta es similar. Reflexione sobre esto y haga pruebas. Verifique los


resultados.

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

Realice las siguientes operaciones:


1. B5,216+10110100,10102 =X16
2. 23410-E016 =X16
3. AF16+9310 =X16
4. 101101,1012+D2,616 =X16

Convierta todos resultados anteriores también a octal.

1.7 Propiedades de Binario, Octal y Hexadecimal


Vamos a ver más adelante que dentro de la computadora todo se representa
como números binarios. Es lo único que tiene para representar. Pero el
manejo de números binarios no es lo más práctico para los humanos. En
realidad cuando un numero es algo grande la cantidad de dígitos aumenta
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 25 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

considerablemente y recordar la secuencia de unos y ceros es difícil para


como funciona el sistema cognitivo humano. Por ejemplo es muchísimo más
fácil recordar 1.274.58910 que la secuencia 1001101110010110111012. Uno
de los problemas es que los símbolos uno y cero tienen muy poca
información para como funciona el cerebro humano. Entonces usamos octal y
hexadecimal como formas de abreviar la representación de binario.
Aprovechamos el hecho de que hay una relación directa entre un conjunto de
bits y los dígitos de octal (recuadro) y hexadecimal.

Decimal Binario Hexadecimal


0 0 0 0 0 0
1 0 0 0 1 1
2 0 0 1 0 2
3 0 0 1 1 3
4 0 1 0 0 4
5 0 1 0 1 5
6 0 1 1 0 6
7 0 1 1 1 7
8 1 0 0 0 8
9 1 0 0 1 9
10 1 0 1 0 A
11 1 0 1 1 B
12 1 1 0 0 C
13 1 1 0 1 D
14 1 1 1 0 E
15 1 1 1 1 F

Así el número 1.0011.0111.0010.1101.11012 es más fácil de ser recordado


como 1372DD16, necesita menos dígitos y volver a convertirlo en lo que en
realidad representa (los números binarios) es trivial.

Si queremos convertir 742,158 a Hexadecimal, convertimos primero a binario


111100010,0011012 y luego a hexadecimal 1E2,3416. Y el proceso inverso
también es posible.

Pruebe transcribir el número binario anterior a una hoja mirando la


menor cantidad de veces, compárelo con el esfuerzo de hacer lo mismo
con el número representado en decimal o en hexadecimal. ¿A qué
atribuye esto?

Si existe esta equivalencia entre dígitos de esto ocurre con Hexadecimal


y con Octal; Con cuales bases usted piensa que también podría ocurrir
algo similar. Generalice el problema y explique qué propiedades deben
cumplir las diferentes bases para poder tener mecanismos así de
sencillos para convertir entre ellas.

Reflexione sobre los mecanismos generales para convertir números


representados entre dos bases arbitrarias diferentes. ¿Qué se necesita
para poder hacer esa conversión sin necesidad de convertir a decimal?

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 26 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

Los números representados en bases mayores necesitan de menos


dígitos que el mismo numero representado en una base menor.
Explique porqué ocurre esto.

1.7.1 Ejercicios

1 Convertir a las otras bases


Hexadecimal Decimal Octal Binario
C0CA,FEA16
1365,312510
703,38
101100111,00012
3F216
3289610
528
0010000010002

2 ¿Cuál es el número más grande que podemos representar con 10


dígitos en octal?
3 ¿Cuál es el número más grande que podemos representar con 10
dígitos en hexadecimal?
4 ¿Cuál es el número más grande que podemos representar con 10
dígitos en base n?
5 ¿Cuál es el número más grande que podemos representar con m
dígitos en base n?

1.8 Sistema Posicional Base n


A todo esto podemos tener un modelo general para los sistemas posicionales
independientemente de la base de la que hablemos. Vemos que la forma de
calcular el valor es la misma para todas las bases (solo cambia la base) y la
forma de sumar y restar también (solo cambia la secuencia de números
válidos; o sea cual es el numero anterior y cual el siguiente para un número
valido de la base n)

El sistema posicional de numeración de base n se basa en n símbolos:

Sn={s0, s1, s2, s3, s4, …,sn-2 , sn-1}


base=n

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.

La secuencia de números del sistema será la siguiente:


s0 s1 … sn-2 sn-1 s1 s0 s1 s1 … s1 sn-1 s2 s0 s2 s1 … s2 sn-1 s3 s0 …

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 27 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

Nótese la concatenación de los dígitos y como se construye el siguiente


rango cuando se llega al último símbolo de dígito sn-1.

La suma se resuelve por columnas:


co ci
a
+ b
r
En cada columna recibimos a, b, ci y obtenemos co y r de forma que se
verifica la siguiente igualdad: ( a + b + ci = co * n + r ). Y continuamos en la
columna de la izquierda.

La suma de los dígitos, se realiza a partir de la secuencia de los números en


base n y se cuenta tantos lugares siguientes como indica uno de los
sumandos y comenzando por el siguiente al otro de los sumandos.

La resta también se resuelve por columnas:


bo bi
a
- b
r
Recibimos a, b, bi y obtenemos bo y r de forma que se verifique la siguiente
igualdad: ( (bo * n + a) - b - bi = r >= 0 ). Elegimos bo para asegurarnos de que
r sea positivo.

La resta de los dígitos, es similar a la suma pero haciendo la cuenta regresiva.


A partir de la secuencia de los números de base n, debemos contar tantos
lugares anteriores como indica el digito denominador y comenzando por el
anterior al numerador (incluyendo al bo cuando hubo préstamo). El último
contado es el resultado de la resta de dígitos. Si nos pasáramos de cero es
que el bo fue mal elegido.

La multiplicación y la división se pueden entender como operaciones de


sumas y /o restas, tal como se vio previamente. Es de notar que sería
necesario disponer de las tablas de multiplicar en cada base n en la que
trabajáramos.

Reflexione sobre este problema y haga algunas pruebas con bases


pequeñas. Describa sus descubrimientos. Haga alguna tabla de
multiplicar de una base diferente de 10 y de 2.

Reflexione sobre el problema de cambiar de una base X a una base Y


diferente de base 10 y 2. ¿Qué problemas tendría para aplicar los
métodos vistos en el curso?

Para convertir de decimal a base n se puede aplicar el “Método de los


Restos”.

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 28 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

Supongamos que queremos convertir el número X. Hacemos una tabla de


tres filas. Buscamos una potencia de n (nm-1) tal que se cumpla que nm>X>=
nm-1. De esto sabemos que nuestro número va a tener m dígitos significativos.
Y que en la posición n-1 el dígito binario debe ser diferente de cero.

Acomodamos a X y las potencias de n de la siguiente forma:

nm-1 nm-2 nm-3 … n1 n0 n-1 … n-j


,
X

Las potencias negativas solo son necesarias si hay parte fraccional a


convertir. Ahora de izquierda a derecha se realiza el siguiente procedimiento.
Consideramos el valor X y la primera potencia que estén en la forma que se
indica en el siguiente cuadro.
nm-1

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).

Elabore un par de ejemplos con bases diferentes de 10 y 2.

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

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 29 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

1.9 Otros sistemas de numeración


Hay propuestas de Sistemas de numeración de bases factoriales y primas
(De raíz mixta) muy interesantes y que tienen propiedades matemáticas
particulares [15].

Los sistemas de raíz múltiple pueden tener aplicaciones en dominios


específicos o en sistemas de numeración antiguos que mantienen esas
características. Esto se debe muchas veces a que el grupo cultural de esa
sociedad utilizaba una base en la antigüedad y luego se adaptaron al sistema
decimal. Un caso particular es el Sistema Inglés de Medidas [ 42 ]. Como
curiosidad, el manejo incorrecto de unidades dentro de sistemas informáticos
ha causado varios errores, uno de los más comentados fue la pérdida de una
nave espacial de 125 millones de dólares enviada a Marte en 1999 debido a
un error de conversión de números, al tener un subsistema que funcionaba
con unidades métricas y el otro con unidades inglesas sin hacerse la
conversión entre ellas [43].

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 30 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

2 Sistemas de Numeración Basados en Computadora


Algunas de las preguntas que tratamos de responder en esta sección son las
siguientes:

¿Cómo represento números dentro de un computador? ¿Cual es el número


más grande que podemos codificar? ¿Cual el más pequeño? ¿Cómo
represento negativos y positivos? ¿Cómo represento números reales, con
coma y exponente? ¿Como se representa la información en general dentro
de un computador?

Las siguientes secciones nos presentarán diferentes modelos de


representación de números muy necesarios para comprender la organización
de los computadores. En particular nos basaremos en el sistema de
codificación binario, que es la base sobre la que se diseñan los
computadores de hoy día.

2.1 Conceptos Previos

El sistema de numeración binario es el usado internamente en las


computadoras. Es el único usado internamente en las computadoras. Toda
representación de cualquier dato dentro de una computadora es en binario.
Internamente las computadoras solo pueden representar información binaria.
Por lo tanto el uso de otros sistemas de numeración en la computadora es
una mera ilusión, como otras muchas, creada por programas (representados
también en binario) que se encargan de convertir la información numérica a
otros formatos para que sea fácilmente legibles por el usuario.

El otro problema es que las computadoras tienen una organización acotada


físicamente. Debido a diferentes razones que veremos más adelante en este
curso, se debe acotar la cantidad de bits con que se representan los números
en un sistema electrónico.

El sistema de numeración binario, es un modelo abstracto para representar


cualquier número o cantidad, pero eso implica una cantidad arbitraria
(potencialmente infinita) de dígitos. Esto no es posible en un computador con
recursos finitos para representar y procesar información. Al manejar números
de la forma en que lo hacemos, por ejemplo con papel y lápiz o en un
pizarrón, sucede que si necesitamos más dígitos (binarios), simplemente
escribimos más palitos y/o redondelitos en este medio.

Sin embargo en la computadora deben haberse previsto circuitos electrónicos


para todos los dígitos (bits) a representar. Es complejo asociarlos en forma
variable para hacer números de cantidad de bits arbitrarias. La computadora
está limitada a una cantidad finita de dígitos binarios o bits de memoria que
puede almacenar y procesar, y para poder manejar en forma eficiente la
información numérica binaria, debe tener modelos acotados en tamaño.

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 31 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

Por lo tanto una computadora no va a manejar conjuntos arbitrariamente


grandes de bits, sino que va a manejar elementos de información en tamaños
fijos. A efectos que las computadoras independientemente de su fabricante
puedan intercambiar información, estos tamaños de elementos de
información tendrán dimensiones estándar.

Los nombres y las dimensiones de estos elementos estándar de información


(tipos básicos) son los siguientes y varían según la cantidad de bits, en
tamaños que son potencias de dos [44].

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.

Entonces a un conjunto de 4 bits se lo conoce como cuarteto o nibble. Un


conjunto de 8 bit es un octeto o byte. Un conjunto de 16 bits es una palabra o
word. Un conjunto de 32 bits es un doubleword o palabra doble y un conjunto
de 64 bits es una palabra cuádruple o quadword o quad simplemente, un
conjunto de 128 bits generalmente se le denomina párrafo, del inglés
paragraph, o también octaword. Y así sucesivamente. Un procesador podrá
operar con todos o con algunos de estos tamaños de datos.

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.

Es de notar que también se usa el término Palabra [45] (o Word, en


Inglés) para referirse al tamaño físico y único que usa un computador
para representar y manipular su información en forma interna. Así un
computador con un procesador de 64 bits, en general tendrá un tamaño
de registro, de bus de dato y de otros componentes (que veremos más
adelante) de 64 bits. A veces en la literatura se describe entonces que
ese computador tiene un tamaño de palabra de 64 bits. Pero nosotros
vamos a preferir usar el término de bus o de registro de 64. Ya que el
término palabra (o word) queda ambiguo con respecto al uso específico
de representar estructuras de 16 bits. Esto tiene un poco de historia.

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 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.

Las computadoras representan internamente combinaciones de unos y cero


en estructuras estándar con cantidad de dígitos en potencias de dos (4, 8, 16,
32, 64, 128, etc.). Esto es así al menos en los procesadores comerciales para
escritorio y servidores. Existen procesadores que utilizan otras estructuras de
memoria de cantidades diferentes (12, 13, 15, 23 bits) pero estos en general
son microcontroladores que se utilizan para control industrial, automatismos y
robótica, pero no para computadores de sobremesa, estaciones de trabajo ni
servidores.

Cuando decimos que nuestro computador es de 64 bits, significa que tanto la


memoria como el procesador, puede operar con números de 64 bits en un
solo paso. Esto es que los registros del procesador, al menos el bus de datos
y los registros de la memoria son todos de 64 bits, y que cuando realiza una
operación puede hacerla en un solo paso. Para equipos más antiguos de
tecnologías anteriores, puede ser que este sea de 32 o de 18 bits, lo que
implica que su bus, registros y memoria serán de ese tamaño.

No se debe confundir esto con que el procesador opere con


instrucciones de 32 bits versus 64 bits. Esto indica que el procesador
está utilizando un conjunto de instrucciones compatibles con las
utilizadas por un procesador de la mencionada tecnología, y que
implícitamente acota a las operaciones a hacer en un solo paso con
solo aquellas que no superen el tamaño de la tecnología. Pero esto no
implica que se haya cambiado el procesador y la memoria. Un
procesador de 64 bits, con memoria de 64 bits, puede operar con
instrucciones de 32 bits, lo que implica que operará con estos datos
como si fuera de 32 bits, desaprovechando las facilidades para datos
grandes de 64 bits. Estudie este problema y reflexione sobre el.

2.1.1 Unidades de Cantidad de Información

Generalmente las unidades para medir la cantidad de información se van a


basar en byte (octeto) cuando lo que se habla es de información masiva
almacenada en algún medio. Y de bits, muchas veces cuando lo que interesa
es la transmisión serial (bit a bit) por algún medio, como ser red inalámbrica o
alámbrica, MODEM, etc.

También las cantidades tienen denominaciones. De la misma manera que en


las unidades decimales tenemos Kilo, Mega, etc. Aprovechando que
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 33 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

coinciden aproximadamente con las potencias de 2 con múltiplos de 10,


entonces si tenemos 210 bytes entonces tenemos un kilobyte. Y continuamos
para otras cantidades:
Potencia de 10 Valor de potencia
Denominación Potencia de 2
de dos
Kilobyte 103 210 1024
6 20
Megabyte 10 2 1048576
9 30
Gigabyte 10 2 1073741824
12 40
Terabyte 10 2 1099511627776
Petabyte 1015 250 1125899906842624
18 60
Exabyte 10 2 260
Zettabyte 1021 270 270
Yottabyte 1024 280 280
Hellabyte 1 1027 290 290

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.

Esta confusión se trata de resolver cambiando la terminología y usando el


concepto de unidades de prefijo binario [49] de IEC (normas europeas) de
forma que Kilobyte significa 1000 bytes y Kibibyte (Kilo binary byte) sería
1024 bytes.

Estas aún no cuentan con una adhesión importante de la comunidad de


Tecnologías de la Información, pero lentamente se va incorporando.

Pref. Abr. 2n 1024n Cantidad Pot. De 10


kibi Ki 210 10241 1024 ~1.02×103 kilo K
mebi Mi 220 10242 1048576 ~1.05×106 mega M
gibi Gi 230 10243 1073741824 ~1.07×109 giga G
tebi Ti 240 10244 1099511627776 ~1.10×1012 tera T

1
Ver: URL=http://www.facebook.com/pages/The-Official-Petition-to-Establish-Hella-as-the-SI-Prefix-for-
1027/277479937276?v=info

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 34 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

pebi Pi 250 10245 1125899906842624 ~1.13×1015 peta P


exbi Ei 260 10246 1152921504606846976 ~1.15×1018 exa E
zebi Zi 270 10247 1180591620717411303424 ~1.18×1021 zetta Z
yobi Yi 280 10248 1208925819614629174706176 ~1.21×1024 yotta Y

2.2 Enteros (sin signo)


Como se dijo anteriormente, la computadora debe acotar el tamaño de las
estructuras de datos a tamaños estándar (cantidad de bits). Esto nos acota la
cantidad de bits y el rango de representación de los números que se van
operar.

El concepto de números enteros en computación corresponde más


exactamente a los naturales. Esto significa representar valores positivos
partiendo desde el cero hasta un cierto valor máximo determinado por el
tamaño de la estructura reservada para representar a estos números.

Cuando hablamos de un número entero entendemos que hablamos de un


conjunto de bits acotado a una cantidad estándar de 8, 16, 32, 64 o más bits
(Hay algunos procesadores que también trabajan con conjuntos de 128 y 256
o más bits) y que lo evaluamos según el valor del número binario que
encierra. Esto determina también el rango de números que puede soportar un
tipo dado de datos y que nuestro hardware es capaz de procesar en
operaciones atómicas (realizadas en forma indivisible en un momento dado).

El rango de representación (el rango de valores que podemos representar


con una estructura) dependerá de la cantidad de bits que cuente para esa
representación. Se podrá representar desde cero hasta el máximo valor
representable.

Cantidad de bits Mayor número representable.


4 15 = 24-1 =11112
8 255 = 28-1=111111112
16 65535 = 216-1=11111111111111112
32 4294967295 = 232-1
64 18446744073709551615 = 264-1
128 2128-1
256 2256-1

Para el caso de 8 bits (un byte) se puede representar desde cero


(000000002) hasta 25510 (111111112) y todas las combinaciones entre medio.

Con enteros en este esquema de representación asumimos que podemos


representar desde el valor cero (todos los bits a cero) hasta el valor (2n-1) que
correspondería a el valor con los n bits en uno.

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 35 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

Reflexione sobre esto y haga la prueba. Verifique el rango de


representación para algunos tamaños de datos. Verifique porqué es
necesario un bit más (n+1) para representar números como 2n.

Si se trata de representar un número mayor a los especificados en la tabla,


para un tamaño de datos determinado, entonces precisaría al menos un bit
más de los que permite el tipo, por lo que no lo podemos representar con la
cantidad de bits disponibles. Esto es lo que se llama un desbordamiento. Este
puede ocurrir por tratar de introducir un número mayor a lo que soporta el tipo
de dato donde se asigna, o porque el resultado de una operación (por
ejemplo una suma) da como resultado que se precisan más bits para
representar el número obtenido, por ejemplo que luego de una suma el ultimo
digito diga que hay acarreo.

También podemos considerar al desbordamiento (overflow) cuando el


resultado de una operación devuelve un valor que está fuera del rango de
representación del tipo de dato con el que se está trabajando.

Cuando se hace la suma o la resta de dos valores de un mismo tipo (tamaño,


cantidad de bits) el resultado se asume que debe caber en ese mismo
tamaño. Si luego de realizar la operación (suma o resta) el resultado tiene un
acarreo o préstamo más allá del dígito más significativo, entonces la cuenta
dá desborde (overflow).
En el caso de la suma 15010+12710=27410 necesita más de 8 bit para ser
representado. Eso se refleja en el bit de carry que sobre luego del bit más
significativo. El resultado de 8 bits obtenido no tiene significado (En realidad
1810+25610=27410, donde 1810=100102).
1 1 1 1 1 1 0 0 0
0 1 0 0 1 0 1 1 0 +
0 0 1 1 1 1 1 0 0
1 0 0 0 1 0 0 1 0

En el caso de la resta de 15010 – 18810 = -3810 que no es representable.


Luego del dígito más significativo aún sigo pidiendo prestado. El resultado de
8 bits obtenido no tiene significado (En realidad 25610-3810= 21810
=110110102).
1 1 1 1 1 0 0 0 0
1 0 0 1 0 1 1 0 -
1 0 1 1 1 1 0 0
1 1 0 1 1 0 1 0

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).

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 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

2 Calcule las siguientes operaciones de enteros de 8 bits. El


resultado es un entero sin signo de 8 bits pero su representación en
decimal. Verifique la situación de Desborde.
B516 + 5016 = base10
AF16 - B516 = base10
4C16 + 3516 = base10
3 ¿Cuál es el rango de símbolos de un registro si tenemos 16 bits
para ello?

2.3 Punto Fijo o Enteros con Signo


Los enteros tal como fueron presentados en la sección anterior solo pueden
representar valores positivos en un rango desde cero hasta el tope de
representación posible para el tamaño de la estructura seleccionada. Pero en
ocasiones es necesario representar también valores negativos.

Dado que las computadoras solo pueden representar combinaciones de unos


y cero en estructuras estándar con cantidad de dígitos en potencias de dos (4,
8, 16, 32, 64, 128, etc.) debemos acomodar la representación de números
con signo a esas estructuras.

Supongamos una estructura de 4 bits. Esta estructura soporta 16


combinaciones de unos y ceros en sus cuatro lugares. Si fuera de n bits
soportará 2n combinaciones. Lo que se debe hacer si se quiere representar
negativos es decir que algunas combinaciones de unos y cero representan
valores positivos, y otras combinaciones representan valores negativos, y
alguna(s) combinaciones representara(n) al cero.

2.3.1 Módulo y Signo


El modelo de módulo y signo es justamente eso. Se toma el bit más
significativo de la estructura y se considera que este representa al signo.

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 37 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

Generalmente el cero significa positivo y el uno significa negativo. Mientras


que el resto de los bits representan el valor absoluto (módulo) del número a
representar. Así para nuestro ejemplo de 4 bits tendríamos la siguiente tabla:

Bit 3 Bit 2 Bit 1 Bit 0


Valor
Signo
0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7
1 0 0 0 -0
1 0 0 1 -1
1 0 1 0 -2
1 0 1 1 -3
1 1 0 0 -4
1 1 0 1 -5
1 1 1 0 -6
1 1 1 1 -7

En módulo y signo de 8 bits sería +1010=000010102 y -1010=100010102.

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.

Cantidad de Bits Menor número Mayor número


representable representable
8 -127 127
16 -32767 32767
32 -2147483647 2147483647

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

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 38 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

también pueden ser complicadas, por ejemplo la resta de un negativo a un


positivo es en realidad una suma, y en otros casos dependiendo de los
valores de los módulos puede variar el signo del resultado. Esto implica un
conjunto de verificaciones y alternativas que deben realizarse para hacer
operaciones aritméticas con este tipo de representación. Todo esto, veremos
más adelante, que implicará complejos circuitos que habría que agregar.

Reflexione sobre el problema y haga una caracterización exhaustiva de


los controles que se deben hacer y la forma de realizar las operaciones
de suma y resta con este tipo de datos, para que dé correctamente o
detectar el desborde. Piense en máquinas que hacen sumas y restas y
cómo se debe dirigir los módulos a las entradas de esas máquinas para
calcular la suma o la resta dependiendo de los signos de los valores.

Estos problemas hacen que el modelo de módulo y signo, si bien es trivial y


fácil de comprender, presenta unas dificultades que harán que los circuitos
para el tratamiento de estos datos sean más costosos, con más componentes
que los que se usan para otras representaciones y por tanto más lentos que
otros que veremos más adelante.

2.3.2 Complemento a uno


El modelo de complemento a uno es similar al de Módulo y Signo en su
estructura. Pero se diferencia en que el módulo de los valores negativos se
representa con los bits invertidos (solamente los del módulo, no el de signo).
Así para nuestro caso de 4 bits tendremos el siguiente caso:

Bit 3 Bit 2 Bit 1 Bit 0


Valor
Signo
0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7
1 0 0 0 -7
1 0 0 1 -6
1 0 1 0 -5
1 0 1 1 -4
1 1 0 0 -3
1 1 0 1 -2
1 1 1 0 -1
1 1 1 1 -0

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

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 39 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

interpretándolos como enteros sin signo luego de invertir el signo. El único


caso particular es el de la representación de cero que igual que el modelo de
módulo y signo, tiene dos representaciones.

Sin embargo a la hora de hacer sumas o restas, para ciertas situaciones se


debe ajustar los resultados para que concuerden con el modelo de
representación. Por ejemplo si se suma un negativo más un positivo da bien.
1
1 0 1 0 + -5
0 0 1 1 +3
1 1 0 1 -2
Pero si se suma un negativo más un positivo de mayor valor absoluto…
1 1
1 1 0 0 + -3
0 1 0 1 +5
0 0 0 1 <> +2
En cambio para el negativo de mayor valor absoluto da correctamente…
1 0 0 0 + -7
0 1 0 1 +5
1 1 0 1 -2

Vemos que en estos casos ignoramos el acarreo que sale de la estructura.


Como es un acarreo que parte del bit de signo. Este ya no tiene el mismo
significado que en el caso de los Enteros sin signo.

Entonces para algunos casos de ciertos signos de los sumandos (o del


minuendo y sustraendo en el caso de restas) es necesario corregir el
resultado sumando uno o restando uno.

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.

2.3.3 Complemento a dos


Uno de los criterios fundamentales para elegir un sistema de representación,
en particular de enteros con signo, es que permita minimizar los circuitos
necesarios para operar con ellos. En particular que el circuito sea lo más
sencillo posible y con la menor cantidad de partes. A fin de cuentas si se
puede hacer algo minimizando los costos y la complejidad, este método se
hará el más popular y los otros se dejarán de utilizar.

Este es el criterio por el cual el modelo de complemento a dos es la forma de


representar enteros con signo en todos los computadores modernos por
excelencia. Los procesadores modernos cuentan con un conjunto de
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 40 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

operaciones de máquina que permiten trabajar con números de codificación


Complemento a 2.

Si quisiéramos representar el -1 (menos uno) y operar con el en forma


sencilla quizás fuera más conveniente tomar el cero (por ejemplo en 8 bits
sería 00000000) y restarle uno. El valor resultante declararíamos que es -1. Y
así sucesivamente continuaríamos con todos los otros valores.
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 -
0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 1

Los valores para cuatro bits se presentan en la tabla siguiente:


Bit 3 Bit 2 Bit 1 Bit 0
Valor
Signo
0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7
1 0 0 0 -8
1 0 0 1 -7
1 0 1 0 -6
1 0 1 1 -5
1 1 0 0 -4
1 1 0 1 -3
1 1 1 0 -2
1 1 1 1 -1

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

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 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.

Los negativos tienen una representación especial que necesita un


procedimiento para convertir el positivo en un negativo de Complemento a 2.

Una forma de verlo es que el valor negativo en complemento a 2 se obtiene


restando al numero 2n el número entero positivo a representar, siendo n el
número de bits del tipo de dato.
1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 0 0 -
0 0 0 0 0 1 0 1 =5
0 1 1 1 1 1 0 1 1 =-5

Otra forma de obtener los valores negativos es a partir de los positivos


enteros, lo invertimos bit a bit, y luego sumando 1 en binario despreciando el
acarreo.

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

Veamos que ambos procedimientos son equivalentes. Si tengo un número


impar, el primer bit es uno, por lo tanto al invertir y sumar uno obtenemos
primero un cero al que se le suma un uno y por lo tanto queda como está. Y
no me llevo nada, el primer bit no cambia y el resto de los bits son el inverso.
Valor positivo a b c d e f g 1 =X
Sumo 1 ¬a ¬b ¬c ¬d ¬e ¬f ¬g 1 =-X

Si tengo un número par, entonces el primer bit es un cero, al invertir y sumar


uno tenemos que uno más uno es dos y por lo tanto bajo un cero (por lo tanto

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 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.

Otra forma es simplemente restar a cero el número a convertir, sin


preocuparse por si pido prestado o no.

También podemos sumarle el número con todos unos (n bits en uno) y luego
invertir el resultado.

Verificar las aseveraciones anteriores. Comprobar con ejemplos.


¿Puedes demostrar que estos resultados concuerdan con todos los
métodos?

Este sistema utiliza el bit más a la izquierda para el signo, correspondiendo el


cero a los positivos y 1 a los negativos, igual que en los modelos vistos
anteriormente.

Si tenemos el numero 1010=000010102 para calcular el negativo invertimos bit


a bit 111101012, luego le sumo uno y tenemos -1010=111101102 (o utilizamos
algunos de los otros métodos vistos antes). La conversión de los números
negativos a positivos se puede hacer restando uno e invirtiendo bit a bit, o
restando al número 2n-1 al número a convertir, o invirtiendo y sumando uno, o
sumando 2n-1 y luego invirtiendo, o también restándole a cero el valor a
cambiar. Otra opción es ir pasando los dígitos menos significativos mientras
sean ceros hasta encontrar el primer uno que también se pasa. Luego el
resto de los bits se pasan invertidos. En todos los casos se ignora el bit de
acarreo. Esta conversión sirve tanto para convertir de positivo a negativo y
viceversa.

Es de notar que podemos calcular el valor general de cualquier número en


complemento a 2 (de n bits), tanto positivo como negativo con la siguiente
fórmula:

Para el número de n bits [an-1,an-2,…,a1,a0], su valor es


-2n-1* an-1 + ∑i=0.. n-2 ai*2i

Así el número 101100112 representa el valor (-128 + 51= -77). Podemos


verificar convirtiendo a positivo: 010011012=77.

Los rangos de representación no son simétricos.

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 43 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

Cantidad Menor Mayor


de Bits número número
representable representable
8 -128 127
16 -32768 32767
32 -2147483648 2147483647

Siempre el menor número negativo es un uno seguido de n-1 ceros y tiene el


valor -2n-1. El mayor número positivo es un cero seguido de n-1 unos y vale
+2n-1-1.
Como dijimos, una de las ventajas es que podemos realizar cuentas entre
números de punto fijo. Si sumamos 1310 + (-1010) tenemos 000011012 +
111101102 ignoro el acarreo.
1 1 1 1 1 1
0 0 0 0 1 1 0 1 + =+13
1 1 1 1 0 1 1 0 =-10
0 0 0 0 0 0 1 1 =+3

Para la resta la situación es similar. No es necesario hacer cambios o ajustes.


Solamente se debe cambiar la interpretación de los valores de las
combinaciones de unos y ceros (en particular los negativos). La suma (o la
resta) se realiza como si estuviera sumando enteros sin signo.

En el caso de complemento a dos el cero no tiene doble representación.


010=000000002.

Si estamos operando con números de diferente tamaño debemos poder


convertir un byte a un word punto fijo (o de un tamaño a otro mayor). La
conversión se llama “extensión de signo” y es una operación básica de todos
los procesadores modernos. Simplemente llena los bits superiores con el
mismo valor que el bit de signo. Así si tenemos el número 1310 de 8 bits
(000011012) y lo convertimos a 16 bits, entonces repetimos en signo 8 veces
(00000000000011012). Si lo que queremos convertir es un número negativo
(-1010=111101102) extendemos el signo y tenemos (11111111111101102).

Reflexiones sobre las restricciones de hacer el proceso inverso. Esto es


convertir un número en complemento a dos desde una estructura a otra
de menor cantidad de bits. ¿Cuándo se puede hacer y cuándo no?

Como se indicó previamente, para representar cantidades de bit grandes, se


prefiere explicitar los valores utilizando la representación hexadecimal.

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:

Binario Hexadecimal Valor Decimal


Complemento
a dos
1000 8 -8

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 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.

Reflexionar sobre el valor de los números binarios interpretados como


complemento a dos. Haga ejemplos de 8 bits y verifique el valor decimal
representado.

Esto nos permite analizar con mayor facilidad cuando tendremos un desborde
en las sumas y restas realizadas en complemento a dos.

Ver por ejemplo que la suma 8ABCDEF016 + 9123456716 consiste en sumar


dos números negativos (de 32 bits interpretados como complemento a dos)
con valor absoluto cercano al límite de representación. Esto implica que la
suma de ambos dará un numero negativo de valor absoluto mucho mayor
que el máximo representable. De forma similar ocurriría con las siguientes
cuentas:
7ABCDEF016 + 6123456716
8ABCDEF016 - 7123456716
7ABCDEF016 - 9123456716

Reflexione sobre los valores representados, los signos de los valores


interpretados como complemento a dos y las operaciones si son resta o
suma.

Otra forma de verificar si hay desborde u overflow es que no haya coherencia


entre el signo de los valores con los que se opera y el resultado. Si por
ejemplo se suma dos números positivos y el resultado da negativo, eso
implica que hubo overflow.

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 45 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

En el siguiente ejemplo sumamos 77 más 118. Es claro que 195 es mayor


que el mayor positivo representable en complemento a dos de 8 bits (127)
por lo tanto va a dar desborde. Esto implica que si en decimal el resultado se
pasa del rango, en la representación binaria tendré desborde.

Al realizar la suma vemos que la suma de dos números positivos me da como


resultado un valor negativo. Esto implica que si el resultado no tiene un signo
que esté acorde a lo esperado de la operación, según los parámetros con los
que se opera, es porque estamos ante un caso de desborde.
0 1 1 1 1 1
0 1 0 0 1 1 0 1 + +77
0 1 1 1 0 1 1 0 +118
1 1 0 0 0 0 1 1 +195

Este problema de la coherencia de los signos se da tanto para la suma como


para la resta y con valores de cualquier signo.

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.

Verifique estas condiciones para la resta.

Demuestre que todos los criterios anteriores para identificar desborde


en complemento a dos son equivalentes.

¿Es posible que haya desborde si se suman dos números de diferente


signo o si se restan de igual signo? Reflexiones sobre la pregunta y
determine y demuestre su conclusión.

El término Punto Fijo hace referencia a representación de Enteros con Signo.


Pero como el modelo de Complemento a dos se a transformado en el modelo
de representación de Enteros con Signo por excelencia, el término se usa
muchas veces para referirse a datos representados en Complemento a dos.
El término viene en contraposición a los números en punto flotante que

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 46 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

veremos más adelante. En otras épocas incluía también a números que no


fueran enteros pero que tenían una cantidad de dígitos fraccionales fija. Por
eso el nombre de punto (o coma decimal) fijo. Ejemplo de esto veremos en la
representación BCD más adelante.

Multiplicación con signo:


http://es.wikipedia.org/wiki/Algoritmo_de_Booth

2.3.4 Modelos de Exceso


Los modelos de exceso consisten en tomar un exceso estandar para la
representación, que incidentalmente ubica la posición del cero dentro de la
tabla de valores a representar. Los números menores a este representarán a
los negativos y los mayores a los positivos. Esto implica que para representar
un número determinado, se hace la suma del valor del número a representar
más el exceso y si el resultado cabe en la estructura, entonces es lo que se
representa. Potencialmente el exceso podría ser cualquier valor positivo.
Pero en general se buscarán valores que estén aproximadamente en el
medio del rango de representación para la cantidad de dígitos que se maneje.
Los dos valores que se encuentran cerca del medio del rango de
representación para n bits son 2n-1-1 y 2n-1. Si se eligen otros valores el
rango será todavía más asimétrico. Esto puede ser deseable si se sabe por el
dominio de aplicación que los valores a manejar van a ser asimétricos. Por
ejemplo para registrar temperaturas que van desde los -20ºC hasta los
+120ºC. pero en general se preferirá sistemas de numeración más o menos
simétricos en su representación. Esto es que representen más o menos la
misma cantidad de valores positivos que negativos.
La diferencia de los diferentes modelos de exceso se deberá principalmente
al valor de exceso elegido.
Cuando se opera con valores con exceso, si se suma se debe corregir el
resultado restando un exceso. Si se resta se debe adicionar el exceso que se
canceló en la resta.
Un atributo importante de los modelos de exceso es que tienen el mismo
orden que si se interpretaran como enteros sin signo. Entonces dos valores
que son uno menor que el otro en Exceso, sus representaciones son también
uno menor que el otro si se interpretan como enteros sin signo.

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.

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 47 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

Si tengo que convertir el número -10 le agrego 128 (2n-1) y obtengo


11810=011101102. como número binario en la estructura. Pero se interpreta
como -10 representado en exceso a 2n-1. Nótese que todo número
representado en exceso a 2n-1 es igual a su correspondiente representación
en complemento a 2 con el primer dígito de la izquierda (más significativo)
cambiado.
Los rangos de representación no son simétricos.
Cantidad Menor Mayor
de Bits número número
representable representable
8 -128 127
16 -32768 32767
32 -2147483648 2147483647

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.

Cantidad Menor Mayor


de Bits número número
representable representable
8 -127 128
16 -32767 32768
32 -2147483647 2147483648

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.

De la misma forma que diferentes símbolos escritos se interpretan como tal o


cual significado, en la computadora, un cierto arreglo de bits puede ser
interpretado como un valor u otro según el tipo de dato que se interprete. En
particular a continuación se muestra la interpretación de combinaciones de 4
bits para cada tipo de dato de enteros con signo que hemos revisado.

Binario Hexadecimal Módulo Compl. Compl. Exceso Exceso


y Signo a1 a2 2n-1-1 2n-1
0000 0 0 0 0 -7 -8

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 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

Es de notar que esto ocurrirá con todos los datos a representar en la


computadora. Números, texto, imágenes y sonido, todo es representado con
números binarios que deben ser interpretados según el tipos de datos y
estructura con la que fueron creados.

2.3.5.1 Ejercicios

1 Analice la tabla anterior, reflexione sobre los valores que cada


combinación de unos y ceros tiene en cada interpretación. Calcule
una tabla similar pero para 8 bits y solo los siguientes valores:

Binario Módulo Compl. Compl. Exceso Exceso


y Signo a1 a2 2n-1-1 2n-1
00000000 0
00000001
00000010
00000011
… … … … … …
01111110
01111111 0
10000000 0
10000001
… … … … … …
11111100
11111101
11111110
11111111 -0 -1
2 Calcule las siguientes operaciones con complemento a 2 de 8 bits.
El resultado es un complemento a 2 de 8 bits pero su
representación en decimal. Verifique la situación de Desborde.
B516 + 5016 = base10
AF16 - B516 = base10
4C16 + 3516 = base10

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 49 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

3 Calcule las siguientes operaciones con complemento a 2 de 16 bits.


El resultado es un complemento a 2 de 16 bits pero su
representación en decimal. Verifique la situación de Desborde.
AFB516 + 504C16 = base10
AFB516 - 504C16 = base10
504C16 - AFB516 = base10
4 Haga la tabla de números de 5 bit de formato módulo y signo.
5 Haga la tabla de números de 5 bit de formato complemento a 1
6 Haga la tabla de números de 4 bit (binarios) y asóciele su valor de
formato complemento a 1, y de número entero. ¿Cómo es la
correlación?
7 Haga la tabla de números de 5 bit de formato complemento a dos.
8 Represente 0 y -0 en complemento a 2.
9 Calcule el resultado de sumar 61 más 70 en formato complemento
a 2 de 8 bits, cual es el valor del resultado. Explique.
10 Calcule el resultado de sumar 01001011010010102 + 111110012,
cuál es el resultado si son números en formato complemento a 2.
11 ¿Cómo determino un overflow (desborde) en complemento a 2?
12 Haga las siguientes operaciones con Enteros sin signo de 16 bits.
313B16 + 400716 =
6E1316 + 7EC516 =
8FB516 + 904C16 =
FFB516 + B54C16 =
13 Realice las siguientes operaciones de números enteros con signo
de 8 bits y exprese el resultado. Los números están en base 10.
a) ((-71)+17)
b) (63+(-45))
c) ((-72)+(-56))
14 Hacer los siguientes cálculos y obtener los resultados mostrando
los cálculos intermedios.
a. 1234 Ca2 + 9876 Ca2 =Base 10
b. ABCD Ca2 + 5433 Ca2 =Base 10
c. 1324 Ca2 + AA Ca2 =Base 10
d. 32768 10 +1 10=Ca2 16 bit
e. 32767 10+32767 10=Entero 16 bit

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.

En general pueden permitir números con decimales (a la derecha de la coma)


pero como se codifican va a depender del ambiente de programación y a
veces de la arquitectura del computador (procesador).

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 50 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

La justificación para estos modelos es que las rutinas de conversión de


binario a decimal y viceversa ocupaban bastante memoria en los sistemas
primitivos, los cuales muchas veces solo contaban con unos pocos kilobytes
de memoria. Por lo tanto era más práctico incorporar operaciones de cálculo
decimal al computador y que maneje archivos externos de información
decimal. Incluso un operador casi sin entrenamiento podía leer números en
las antiguas tarjetas perforadas.

Las correcciones necesarias para hacer operaciones son sencillas y muchos


procesadores las tienen incorporadas. Por ejemplo al sumar dos dígitos si se
pasa de 9 hay que sumar 6 en binario. En el siguiente ejemplo tenemos el
número decimal 06d más 05d que debiera dar 11d pero el resultado 0Ch. El
Ch debe ser corregido agregando 6, y queda 11d.
0 0 0 0 0 1 1 0 + 06 +
0 0 0 0 0 1 0 1 05
0 0 0 0 1 0 1 1 <> 11
0 0 0 0 0 1 1 0 +6
0 0 0 1 0 0 0 1 11

Estas operaciones se mantienen en los nuevos procesadores, pero la


mayoría de los nuevos lenguajes de programación y sistemas usan los
formatos binarios por rapidez y eficiencia.

NUMERACION BCD NATURAL


Consiste en codificar cada dígito por su equivalente binario entero de 4 bits.
Decimal BCD
natural
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001

El número 13 sería 00012 00112, mientras que como entero de 8 bit sería
000011012.

NUMERACION BCD AIKEN


Utiliza una codificación particular para conseguir la simetría en la tabla. La
necesidad de obtener una simetría en la tabla es porque en algunos sistemas
de comunicación es importante que la probabilidad de que aparezcan unos o
ceros sea igual, de lo contrario a largo plazo la predominancia de un símbolo
sobre otro equivale a agregar un nivel eléctrico a la señal. Este nivel eléctrico
puede afectar al receptor de la comunicación. Este sabe si son unos o ceros

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 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

NUMERACION BCD EXCESO TRES


Utiliza otra codificación particular para conseguir la simetría en la tabla. En
este caso cada dígito es representado en exceso 3. Los valores por debajo
del cero y por encima del 9 no se representan.
BCD
Decimal Exceso
tres
0 0011
1 0100
2 0101
3 0110
4 0111
5 1000
6 1001
7 1010
8 1011
9 1100

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.

DECIMAL (O BCD) ZONADO (O DESEMPAQUETADO)


Estos modelos no están muy estandarizados. Consisten en codificar cada
dígito en un byte, donde el nibble menos significativo tiene el valor BCD del
dígito y el más significativo esta a todos unos, o todos ceros, o algún otro
valor fijo, según la implementación, pero en cualquier caso no se usan. Para
codificar el signo algunos modelos usan algún bit de los del nibble más

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 52 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

significativo para guardarlo, esto es especialmente cierto para los modelos


que codifican los bits no usados a cero, como ser las convenciones tipo
INTEL o Pascal.

Suponiendo que se ponen los bits a cero, que se representa en 4 bytes el


número decimal -1234, por lo que se usa en nibble más significativo para el
signo, entonces su representación binaria sería:
10000001 00000010 00000011 00000100
En hexadecimal sería
81 02 03 04
Donde el primer bit indica el signo negativo y los cuatro bits menos
significativos de cada byte guardan los dígitos BCD.

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.

Si los caracteres se codifican con su valor ASCII, entonces los dígitos F se


reemplazan por el valor 3 y el terminador de positivos es 3 y D para los
negativos. Si se codifican en EBCDIC el terminador de signo es D para los
negativos y para los positivos es F o C.
No está estandarizada esta representación entre diferentes plataformas y
ambientes de programación.

Hay también varias formas de ccodificar los dígitos a la derecha de la coma.


En algunos casos un código especial toma el lugar de los bits no
significativos del byte que representa a las unidades.

De todas maneras es un modelo no eficiente de representación, pues se


utiliza todo un byte para codificar un dígito decimal.

DECIMAL (O BCD) EMPAQUETADO


Para poder mejorar esa ineficiencia y mantener un sistema de numeración
basado en BCD se optó por "empaquetar" dos dígitos en cada byte. Entonces
cada número tiene un conjunto de dígitos que se guardan de dos en dos en
cada byte. La codificación del signo se reserva al bit más significativo del byte
más significativo y en ese caso en nibble más significativo solo se usa para el
signo.

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 53 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

Para el caso del número -12345 su representación en decimal empaquetado


de 4 bytes y con signo en el nibble más significativo, en binario sería la
siguiente:
10000000 00000001 00100011 01000101
En hexadecimal sería:
80 01 23 45
Un "cierto" estandar de facto de codificación Decimal Empaquetado es la de
Intel que está incorporada a todos sus procesadores. Este tiene un byte
reservado para el signo y 9 bytes para los 18 dígitos decimales. Maneja
números enteros, y si se interpretan números decimales, queda a cargo del
compilador interpretar a qué altura del número va la coma decimal. Para
nuestro ejemplo tenemos:
80 00 00 00 00 00 00 01 23 45

Hay otros formatos que pueden variar con la implementación de un lenguaje


de programación en particular o una arquitectura de procesador. Pero
además den variaciones en la cantidad de bytes son más o menos similares.

La codificación clásica usada en COBOL, pone los nibbles de cada dígito en


orden y el nibble menos significativo contiene C si es positivo o D si es
negativo. Entonces el número +12345 se codificaría:
12 34 5C
Si hay dígitos decimales (a la derecha de la coma) generalmente es el
compilador que sabe qué dígitos de la representación corresponden a qué
posición con respecto a la coma o punto decimal.

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

9 Convertir a representación en memoria el número 980110 codificado


a Exceso 3.
10 Convertir a representación en memoria el número 132410 a
codificado Aitken.

2.5 Punto Flotante


La coma o punto flotante es un modelo de representación de números reales
que nos permite un rango muy superior de números representables,
comparado a los otros modelos. Nos permite manejar números muy grandes
y muy pequeños de una manera fácil y flexible. Sin embargo la cantidad
absoluta de números diferentes es la misma ya que existe una combinación
finita de números representados en una cierta cantidad de bits.

Hay muchos formatos no estandarizados de punto flotante, pero todas las


arquitecturas modernas de computadores implementan el modelo IEEE-754
que explicamos a continuación.

Se basa en la representación de notación científica, presente en la mayor


parte de las calculadoras de este tipo. En realidad un subsistema de los
procesadores modernos tiene una calculadora de Notación Polaca Inversa
[50](notación postfija) de cálculo científico incorporada. Esto es cómo realizan
las operaciones y se calculan los resultados intermedios de las fórmulas.
Pero lo que nos interesa en este curso es solamente la representación de los
valores “reales” en memoria.

Un número se representa con el siguiente formato: valor=significando *


base^exponente.

Tanto el significando como el exponente tienen signo. Entonces la


representación del número -1365,75 en notación científica será -
1,36575*10^+3. Normalmente se define como representación normalizada
una que asegura un valor predefinido a la izquierda de la coma decimal.
Esta representación se usa para base 10, es útil para la comprensión
humana. Pero las computadoras internamente deben traducir esta
información a binario y es mejor un sistema de numeración de punto flotante
basado en base 2.

Entonces debemos convertir nuestro número a base 2: -1365,7510=-


10101010101,112.

Una vez convertido debemos llevarlo a un formato normalizado, el cual para


IEEE-754 significa que quede solo un uno a la derecha de la coma y
manteniendo el exponente en binario. Dado que implica correr la coma diez
lugares a la izquierda, para compensar el significando debe ser multiplicado
por 2^10. Entonces nuestro número queda: -1,0101010101112*1010102.

Entonces para normalizar el significando se lleva al formato 1,... algo. Como


en nuestro ejemplo la coma se corrió 10 lugares a la derecha, entonces el
exponente es +1010 o sea +10102. Si se hubiera corrido a la izquierda los

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 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.

Ahora veamos los modelos de diferentes precisiones.

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.

El exponente desplazado en el caso de "Short Real", es de 8 bit, se obtiene


también sumando 011111112 al exponente binario del número a convertir.

Para el significando se extiende a la derecha el número con ceros (no


significativos) hasta llenar los 23 bits. El resultado es:

Su representación hexadecimal es:


C4 AA B8 00
Esta es la forma como se guarda el número en memoria.

Se puede hacer el proceso inverso, partiendo de la representación


hexadecimal y obteniendo el número decimal. Para ello se separa las tres
partes, se extrae el exponente y el significando, se agrega el uno implícito y
se convierten a decimal. El resultado es el siguiente:
valor=Significando*2^exponente, eliminando el desplazamiento del
exponente.

Así con 3f60000016, pasándolo a binario y separando las secciones, llegamos


a: signo = 0, exponente desplazado=011111102 o sea (sumando 100000012 y
considerando el resultado como punto fijo complemento a 2) me queda el
exponente igual a -1, y significando igual a 1,110000000000000000000002
(agrego el 1,.. por ser uno implícito). Entonces el resultado es 1,112*2-1.
Convirtiendo a decimal todo tenemos 1,75/2=1,75*2-1=0,87510.

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 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.

TABLA DE VALORES ESPECIALES


Para estos casos especiales el número representado es el de la columna
nombre a la izquierda. Nótese que se puede representar +0, +-0, -. NaN
quiere decir (Not a Number) y son los resultados de ciertas operaciones que
dan resultados indeterminados.
Bits de Bits
Nombre Exponente Significando Signo
Exp. Significando
Todo
+0 min1 =0 + Todo ceros
ceros
Todo
0 min1 =0  Todo ceros
ceros
Número minemax Cualquiera Cualquiera Cualquiera Cualquiera
Todos
+ max+1 =0 + Todo ceros
unos
Todos
 max+1 =0  Todo ceros
unos
Todos
NaN max+1 0 Cualquiera Cualquiera
unos
Todo
Subnormal min-1 0 Cualquiera Cualquiera
ceros

Además tenemos los números subnormales, estos ocurren como resultado


de una operación que da números muy pequeños que no se pueden
representar si se mantiene el significando normalizada. Estos no tienen uno
implícito. Se asume un cero en la posición.

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 57 de 61
Arquitectura de Computadores en un Semestre
Universidad ORT del uruguay

Este estándar abarca un conjunto muy amplio de consideraciones y es muy


específico en ciertos aspectos pero abierto en otros, como ser que los
formatos pueden ser intercambiados en general entre máquinas de diferentes
arquitecturas y procesadores, pero los resultados de realizar operaciones en
ambas arquitecturas pueden dar resultados diferentes.

En el caso de números de punto flotante se puede tener dos tipos de


desborde: overflow y underflow. Overflow es cuando trato de poner un
número que es más grande que el mayor número representable por el
modelo igual que en los otros tipos de datos, ya sea positivo o negativo (pues
solo cambia un bit). Underflow es cuando tengo un número menor que el
menor representable. Esto se resuelve parcialmente con el uso de
subnormales.

2.5.1 Representación de Punto Flotante


¿Qué es lo que realmente se está interpretando con esta representación?
¿Estamos realmente representando a los reales?

Al utilizar un modelo basado en representación binaria de una cantidad de


dígitos determinada, solamente se puede representar una cantidad de
combinaciones de unos y ceros que se asocian a una cantidad determinada
de valores a representar. Para ver con más claridad lo que se representa
analizaremos todos los valores de un Punto Flotante de 5 bits. Este modelo
tiene entonces un bit de signo, dos bits de exponente y dos bits de
significando.

Entonces el significando tiene los siguientes valores:


Uno Bit Bit Valor
Implíc. 1 0
1, 0 0 2= 110
1, 0 1 2= 1,2510
1, 1 0 2= 1,510
1, 1 1 2= 1,7510
Para el exponente tenemos los siguientes valores:
Bit Bit Valor
1 0
0 0 2= -110
0 1 2= 010
1 0 2= 110
1 1 2= 210
Entoces todos los valores (positivos) representables son:
Representación 5 bit
Sig. e.1 e.0 s.1 s.0 Valor
0 0 0 0 0 = 0,5
0 0 0 0 1 = 0,625
0 0 0 1 0 = 0,75
0 0 0 1 1 = 0,875
0 0 1 0 0 = 1
0 0 1 0 1 = 1,25
0 0 1 1 0 = 1,5
0 0 1 1 1 = 1,75
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 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.

Nótese que en el espacio cercano al cero hay un área sin valores


representados. Este problema se resuelve con los subnormales que hacen un
equiespaciado dentro de ese espacio.

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.

En el ejemplo de 5 bits no reservamos un valor de exponente para los


subnormales. Haga un ejemplo asumiendo que el valor 00 del exponente
corresponde con los subnormales, interprete que tienen cero implícito y
rehaga la regla de los valores representados. Extienda esa regla a los
sistemas estándar de representación y reflexione sobre los valores
representados.

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

2.6 Otros Conceptos


Todos estos modelos son un compromiso. La intención es representar un
rango y/o un conjunto de valores discretos que se aproximen a los conjuntos
teóricos infinitos utilizados en matemáticas.

La adecuación o no de cada uno de estos tipos de datos dependerá de la


aplicación considerada, el rango de valores y el error entre la representación
y el valor objetivo real.

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

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 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

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 61 de 61

Potrebbero piacerti anche