Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2016 - 08 - 14 - Sistemas Numericos
2016 - 08 - 14 - Sistemas Numericos
SISTEMAS DE NUMERACIÓN
Yamil Armando Cerquera Rojas 1
yacerque@gmail.com
Neiva, Agosto de 2016
Universidad Surcolombiana.
Las matemáticas, así como los sistemas numéricos o sistemas de numeración, son tan antiguos como la
propia humanidad. Por ejemplo, los sistemas de cálculo primitivos estaban basados en sistemas numéricos
de base diez o base cinco, debido a cuestiones naturales relacionadas por la cantidad de dedos de nuestras
manos.
Cuando los hombres empezaron a contar usaron los dedos, guijarros, marcas en bastones, nudos en una
cuerda y algunas otras formas para ir pasando de un número al siguiente. A medida que la cantidad crece
se hace necesario un sistema de representación más práctico
Por evidencias encontradas en registros y libros, se ha determinado que el sistema numérico decimal era
utilizado ya hace 4000 años aproximadamente, por los egipcios. Con ciertas características particulares,
este sistema fue empleado siglos después por los romanos.
Por el mismo tiempo al cual hace referencia el párrafo anterior, los babilonios utilizaban muescas en forma
de cuña (cuneiforme) para representar a su sistema numérico, las cuales se marcaban en tablillas. Una
cuña representaba al número uno, mientras que una flecha representaba al número diez. Por otro lado,
para el número sesenta se volvía a emplear el mismo símbolo que se asignaba al número uno, pero se le
daba importancia a la posición que guardaba en el número completo, esto es, se maneja el criterio
posicional de “peso” del dígito. Así, los babilonios ya empleaban el sistema numérico sexagesimal, el cual
seguimos empleando hasta nuestros días para el manejo de segundos y minutos de nuestro uso horario.
Ver Figura 1.
Al paso del tiempo y muchos siglos después, la evolución de las culturas y sus correspondientes
necesidades motivaron la aparición y uso de otros sistemas numéricos. Ya en el siglo XIX los matemáticos
George Boole y Cantor trabajaron sobre la teoría de conjuntos la cual es empleada hoy día para el análisis
y síntesis de sistemas digitales, altamente empleada en computadoras, calculadoras, aparatos electrónicos
y juguetes, entre otras muchas aplicaciones..
Los números que hoy se conocen fueron una invención india y adaptado al mundo occidental por los
árabes; es por esa razón que se les conoce como números arábigos. Hay una teoría muy aceptada por los
eruditos que sugiere que cada número del 0 al 9 representa el número de ángulos de cada figura numérica.
1
Ingeniero Agrícola – USCO, Especialista en Sistemas – U. Nacional, Especialista en Administración de la Informática
Educativa – UdeS, Magister en Administración de Empresas - UVM
Yamil Armando Cerquera Rojas – yacerque@gmail.com
Un sistema de numeración puede ser definido como un medio que se utiliza para representar una cantidad
usando símbolos. La cantidad de símbolos distintos que se emplean se conoce como la base del sistema.
Si 𝑎𝑎𝑗𝑗 indica cualquier dígito de la cifra, b la base del sistema de numeración y además de esto, la cantidad
de dígitos enteros y fraccionarios son 𝑛𝑛 y 𝑘𝑘 respectivamente, entonces el número representado en
cualquier base se puede expresar de la siguiente forma:
𝑁𝑁𝑏𝑏 = [𝑎𝑎𝑛𝑛−1 𝑎𝑎𝑛𝑛−2 𝑎𝑎𝑛𝑛−3 . . . . . . 𝑎𝑎3 𝑎𝑎2 𝑎𝑎1 𝑎𝑎0 . 𝑎𝑎−1 𝑎𝑎−2 𝑎𝑎−3 . . . . . 𝑎𝑎−𝑘𝑘 ]𝑏𝑏
Dónde: 𝒋𝒋 = {𝑛𝑛 − 1, 𝑛𝑛 − 2, . . . . . . . . .2, 1, 0, −1, −2, . . . . . . , −𝑘𝑘} y 𝒏𝒏 + 𝒌𝒌 indica la cantidad de dígitos de la
cifra.
Por ejemplo, el número 31221.324 representado en base cuatro (4) tiene 𝒏𝒏 = 𝟓𝟓 dígitos en la parte entera
y 𝒌𝒌 = 𝟐𝟐 dígitos en la parte fraccionaria o no entera: 𝑎𝑎𝑛𝑛−1= 𝑎𝑎4 = 3; 𝑎𝑎3 = 1; 𝑎𝑎2 = 2; 𝑎𝑎1 = 2; 𝑎𝑎0 = 1 y
parte fraccionaria 𝑎𝑎−1 = 3; 𝑎𝑎−2 = 2.
a= 3 1 2 2 1 . 3 2
4 3 2 1 0 -1 -2
Sistema Decimal.
Este es el sistema que manejamos cotidianamente, está formado por diez símbolos {0,1,2,3,4,5,6,7,8,9}
por lo tanto la base del sistema es diez (10).
Sistema Binario.
Es el sistema digital por excelencia, aunque no el único, debido a su sencillez. Su base es dos “2”, emplea
2 caracteres a saber: 0 y 1. Es el sistema que utiliza internamente el hardware de las computadoras
actuales, se basa en la representación de cantidades utilizando los dígitos 1 y 0. Cada dígito de un número
en este sistema se denomina bit (contracción de binary digit). Se puede utilizar con nombre propio
determinados conjuntos de dígitos en binario. Cuatro bits se denominan cuaterno o nibble (ejemplo:
Yamil Armando Cerquera Rojas – yacerque@gmail.com
1001), ocho bits Octeto o Byte (ejemplo: 10010110), al conjunto de 1.024 bytes se le llama KiloByte o
simplemente KB, 1.024 Kilobytes forman un MegaByte o simplemente MB y 1.024 MegaBytes se
denominan GigaBytes.
Los prefijos kilo (k), mega (M), giga (G), tera (T) , peta (P), exa (E), zetta (Z), yotta (Y), bronto (B) y geop (Ge)
proceden de la informática y se refieren a potencias de 2.
El prefijo kilo procede tanto de las unidades de información (1k=1 024) como del sistema decimal (1k= 1
000). De modo similar y, por abuso del lenguaje, 1 mega se aproxima a 1 millón), 1 giga a 1 millardo y 1
tera a 1 billón.
La posición de cada símbolo, o dígito, de un número o cantidad expresada en binario representa el número
de base 2 elevado a una potencia, o exponente, basado en su posición. De derecha a izquierda, la primera
posición representa 20 , ó 1; la segunda posición representa 21 , ó 2; la tercera posición, 22 , ó 4; 23 𝑢𝑢 8, 24
o 16 y así sucesivamente.
Yamil Armando Cerquera Rojas – yacerque@gmail.com
Sistema Octal.
El sistema numérico octal utiliza ocho símbolos o dígitos para representar cantidades y cifras numéricas.
Los dígitos son: {0,1,2,3,4,5,6,7}; la base de éste es ocho (8) y es un sistema que se puede convertir
directamente en binario como se verá más adelante.
La posición de cada símbolo, o dígito, de un número o cantidad expresada en octal representa el número
de base 8 elevado a una potencia, o exponente, basado en su posición. De derecha a izquierda, la primera
posición representa 80 , ó 1; la segunda posición representa 81 , ó 8; la tercera posición, 82 , ó 64; y así
sucesivamente.
Sistema Hexadecimal.
El sistema hexadecimal es un sistema numérico Base 16 que se usa para representar las direcciones MAC.
El sistema numérico hexadecimal utiliza dieciséis dígitos y letras para representar cantidades y cifras
numéricas. Los símbolos son: {0,1,2,3,4,5,6,7,8,9, 𝐴𝐴, 𝐵𝐵, 𝐶𝐶, 𝐷𝐷, 𝐸𝐸, 𝐹𝐹}; la base del sistema es dieciséis (16).
También se puede convertir directamente en binario como se verá más adelante.
Parte Entera
Para representar una cantidad determinada entera en uno de los sistemas de numeración, basta con
representar dicha cantidad haciendo uso de los dígitos con que cuente el sistema de numeración. En la
parte entera los ceros a la izquierda de la cantidad no representan nada.
Parte Fraccionaria
Para representar una fracción (punto) que no corresponda a los valores de representación exacta, será
necesario aproximar. Para ello hay dos formas comunes: Truncamineto y Redondeo.
� 𝑎𝑎𝑖𝑖 ∗ 𝑏𝑏 −𝑖𝑖
𝑖𝑖=−(𝑚𝑚+𝑝𝑝)
En la Tabla 2 se muestran los primeros veintiuno valores enteros en decimal con su respectiva equivalencia
binaria, octal y hexadecimal.
4 0100 4 4
5 0101 5 5
6 0110 6 6
7 0111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10
17 10001 21 11
18 10010 22 12
19 10011 23 13
20 10100 24 14
Yamil Armando Cerquera Rojas – yacerque@gmail.com
Tal como se observa en la Tabla 3 al dividir 10 entre 2, da como resultado 5 y sobra 0. Esto porque la
división es exacta.
Si se procede de la misma manera con el resto de valores hasta llegar a tener 1 y realizar la última
operación que sería 1 divido 2, da como resultado 0 y sobra 1. Como ejemplo observe la división de 5 entre
2, da como resultado 2 y sobra 1. (Tabla 4)
Ej. Convertir la cantidad representada en sistema de numeración decimal “1994” al sistema de numeración
binario.
Digito 1 1 1 1 1 0 0 1 0 1 0
Respuesta: 199410111110010102
3. Multiplicación sucesiva por 2
La conversión de números decimales fraccionarios a binario se realiza con multiplicaciones sucesivas por
2. Se utiliza para convertir una fracción decimal a binario, consiste en multiplicar dicha fracción por 2,
obteniendo en la parte entera del resultado. El primero de los dígitos binarios de la fracción binaria que se
busca (Un cero “0” o un uno “1”) el cual va a ser el MSB (bit más significativo). A continuación se repite el
mismo proceso con la parte fraccionaria del resultado anterior, obteniendo en la parte entera del nuevo
resultado el segundo de los dígitos buscados. Se itera sucesivamente de esta forma, hasta que desaparezca
la parte fraccionaria o hasta que se tengan los suficientes dígitos binarios que permitan no sobrepasar un
determinado error. El último residuo o parte entera va a constituir el LSB (bit menos significativo).
En el anterior ejercicio la conversión nos da una cifra finita de símbolos en el sistema Binario. Porque al
multiplicar sucesivamente se llega a tener un valor exacto para la última multiplicación de 1.0
De la Tabla 6 se puede inducir que la cantidad en sistema de numeración decimal 0.828125 se puede
expresar en el sistema de numeración binario en una cantidad de dígitos finitos equivalente a: 0.110101.
Es decir 0.828125100.1101012
De la Tabla 7 se puede inducir que la fracción 0.645 expresada en sistema de numeración decimal es
equivalente a la fracción 0.10100101 en el sistema de numeración binario. Note que se han tomado 8
cifras significativas en la parte fraccionaria solamente porque el valor de la fracción decimal no ha llegado
a cero (queda 0.120).
Ejemplo: Convertir las fracciones expresadas en sistema de numeración decimal 0.87510, 0.12510 y
0.78210 a binario.
Si bien el método funciona con todos los sistemas de numeración, el proceso puede llegar a producir
pérdidas de precisión. No todas las fracciones representadas en el sistema de numeración decimal pueden
tener como equivalente un número racional exacto en el sistema binario. Por ejemplo el proceso de
conversión del número decimal 0,2 (ver Figura 4), llega a un punto en que se repite en forma periódica.
Yamil Armando Cerquera Rojas – yacerque@gmail.com
Decimal a Octal
Parte Entera
Consiste en dividir un número y sus sucesivos cocientes obtenidos por ocho hasta llegar a una división
cuyo cociente sea 0. El numero Octal buscado es el compuesto por todos los restos obtenidos escritos en
orden inverso a su obtención.
Ej.: Convertir la cantidad 1992 y la cantidad 1000 representadas en base diez a base octal
1992 8 1000 8
0 249 8 0 125 8
1 31 8 5 15 8
7 3 8 7 1 8
3 0 1 0
1992(10) = 3710(8) y 1000(10) = 1750(8)
Parte Fraccionaria
Se toma la fracción decimal y se multiplica por 8, obteniendo en la parte entera del resultado el primer
dígito de la fracción octal resultante y se repite el proceso con la parte decimal del resultado para obtener
el segundo dígito y sucesivos. El proceso termina cuando desaparece la parte fraccionaria del resultado o
dicha parte fraccionaria es inferior al error máximo que deseamos obtener.
Ej. : Convertir la fracción 0.140625 expresada en sistema de numeración decimal a cifra octal.
0.140625*8 = 1.125
0.125000*8 = 1.0
Se puede decir que la fracción expresada en sistema de numeración decimal 0.14062510 es equivalente
a la fracción 0.118 expresada en sistema de numeración octal.
Decimal a Hexadecimal
Parte Entera
Se divide el número decimal y los cocientes sucesivos por 16 hasta obtener un cociente igual a 0. El número
hexadecimal buscado será compuesto por todos los restos obtenidos en orden inverso a su obtención.
Yamil Armando Cerquera Rojas – yacerque@gmail.com
Ej.:
1000 16
8 62 16
14 3 16
3 0
1000(10)=3E8(16)
Parte Fraccionaria
A la fracción decimal se multiplica por 16, obteniendo en la parte entera del resultado el primer dígito de
la fracción hexadecimal buscada, y se repite el proceso con la parte fraccionaria de este resultado. El
proceso se acaba cuando la parte fraccionaria desaparece o hemos obtenido un número de dígitos que
nos permita no sobrepasar el máximo error que deseemos obtener.
0.06640625 * 16 = 1.0625
0.0625 * 16 = 1.0
Luego 0.06640625(10)=0.11(16)
Binario a Decimal
El método consiste en reescribir él número binario en posición vertical de tal forma que la parte de la
derecha quede en la zona superior y la parte izquierda quede en la zona inferior. Se repetirá el siguiente
proceso para cada uno de los dígitos comenzados por el inferior: Se coloca en orden descendente la
potencia de 2 desde el cero hasta n, donde el mismo el tamaño del número binario, el siguiente ejemplo
ilustra de la siguiente manera.
1 ∗ 128 + 1 ∗ 64 + 0 ∗ 32 + 1 ∗ 16 + 1 ∗ 8 + 0 ∗ 4 + 1 ∗ 2 + 1 ∗ 1
Del ejemplo anterior se puede indicar que la cantidad expresa en el sistema de numeración binario
11011011 es equivalente a 219 en el sistema decimal.
Binario a Hexadecimal
Para los números binarios de cualquier longitud siempre se aplica la misma conversión. Comience por la
derecha del número binario y divida el número en grupos de cuatro. Si al llegar al extremo izquierdo del
número no se lo puede agrupar de forma igualitaria en grupos de cuatro, agregue ceros a la izquierda
hasta que la cantidad sea equivalente a cuatro dígitos (bits). Luego realice la conversión de cada grupo de
cuatro a su equivalente hexadecimal. A continuación, se suministra un ejemplo:
100100100010111110111110111001001
0001 0010 0100 0101 1111 0111 1101 1100 1001
1 2 4 5 F 7 D C 9
Hexadecimal a Decimal
El método más utilizado es el TFN que entrega el resultado por la aplicación directa de la fórmula.
Ejemplo: utilizando el teorema fundamental de la numeración se tiene que 2CA es igual a: 2 ∗ 162 + 𝐶𝐶 ∗
161 + 𝐴𝐴 ∗ 160 = 71410
Se convierten los números hexadecimales en números decimales multiplicando los dígitos hexadecimales
por el número base del sistema (Base 16), elevado al exponente de la posición.
Ejemplo: Convertir el número hexadecimal 3F4B a decimal. (La operación debe realizarse de derecha a
izquierda).
3 x 163 = 12288
F(15) x 162 = 3840
4 x 161 = 64
B(11) x 16 =
0
11
16203 = equivalente decimal
Hexadecimal a Binario
Para convertir un número hexadecimal a binario, se sustituye cada dígito hexadecimal por su
representación binaria según la siguiente tabla.
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111
Tal como se especificó anteriormente, los números hexadecimales funcionan de manera exactamente
opuesta. Para cada dígito hexadecimal corresponden cuatro dígitos binarios (bits). Por ejemplo:
AD46BF
A D 4 6 B F
1010 1101 0100 0110 1011 1111
1 2 7 4
001 010 111 100
Existen varios métodos siendo el más generalizado el indicado por el TFN (Teorema fundamental de la
numeración) que hace la conversión de forma directa por medio de la fórmula.
Ej. : utilizando el teorema fundamental de la numeración se tiene que 4701 en base octal (8) es igual a:
4 ∗ 83 + 7 ∗ 82 + 0 ∗ 81 + 1 ∗ 80 = 249710
1378 = 1 ∗ 82 + 3 ∗ 81 + 7 ∗ 80
1378 = 64 + 24 + 7 = 9510
Yamil Armando Cerquera Rojas – yacerque@gmail.com
Los dígitos mj=(aj+hj+cj-1) pertenecientes al resultado se forman sumando los dígitos de cada columna de
los cosumandos, más el acarreo cj-1 que viene de la columna anterior. Cada unidad de acarreo tiene el
mismo valor de la base del sistema, por ejemplo, en la suma binaria es dos, en octal ocho y en hexadecimal
dieciséis. Por ejemplo, llevar 2 en hexadecimal significa que el acarreo es el doble de la base y vale
exactamente 32; de este mismo modo, en binario equivale a 4 veces y 16 en octal. Los acarreos aparecen
cuando las semisumas de las columnas superan la base del sistema numérico.
Suma Binaria
Las operaciones de suma binaria se realizan de la siguiente forma:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0 Llevo 1
1 0 0 1
Tal como se observa en la Tabla 8 la suma de la columna más a la derecha es de 1 + 0 que da como
resultado 1. La columna que sigue que corresponde a la del centro es 0+0 que corresponde a cero y la
última columna es la suma de 1+1 que corresponde a 0 y lleva 1. Como no hay más columnas el uno que
se lleva se coloca en la parte abajo.
1 1 1 0 1 0 1 0 1 1 0
Suma Octal
Se debe restar o dividir la semisuma de cada columna, cuando la misma exceda la base del sistema, y
colocar en la columna inmediata del lado izquierdo, el valor del acarreo tantas veces se haya superado la
base del sistema. De esta misma forma cada unidad que se acarree equivale a ocho unidades de la columna
anterior.
6 6 6 3 6 1 4 7
Suma Hexadecimal
Se debe restar o dividir la semisuma de cada columna, cuando la misma exceda la base del sistema, y
colocar en la columna inmediata del lado izquierdo, el valor del acarreo tantas veces se haya superado la
base del sistema. Cada unidad que se acarree equivale a dieciséis unidades de la columna anterior.
Multiplicación Binaria:
Ej: Multiplicar A=1110112 y B=1112
1 1 1 0 1 1
x 1 1 1
1 1 1 0 1 1
1 1 1 0 1 1
1 1 1 0 1 1
1 1 0 0 1 1 1 0 1
Multiplicación Octal:
Ej: Multiplicar A=672348 y B=168
6 7 2 3 4
x 1 6
5 5 1 2 3
5 1 3 6 5 0
+ 6 7 2 3 4
Yamil Armando Cerquera Rojas – yacerque@gmail.com
1 1 1 1
1 4 0 6 2 1 0
Multiplicación Hexadecimal:
Ej: Multiplicar A. 67D3416 y B. 1216
6 7 D 3 4
x 1 2
C F A 6 8
+ 6 7 D 3 4
7 4 C D A 8
División Binaria:
Ecuación 1
N bC = b n − N b
Donde N bC es el número complementado a la base b del sistema, 𝒏𝒏 la cantidad de dígitos y N b es el número dado.
N bC = (b n − N b ) + 1 − 1 = [(b n − 1) − N b ] + 1 (Ec.1.3.1).
El valor
Ecuación 2
C −1
N b = (b − 1) − N b (Ec.1.4)
n
Yamil Armando Cerquera Rojas – yacerque@gmail.com
Se conoce como el complemento de la base disminuido a uno. También se le denomina complemento a uno del
sistema numérico correspondiente y por lo tanto, para hallar el complemento a la base solamente se le debe sumar
uno a la Ecuación 2.
La cantidad está representada con cinco (5) dígitos, entonces 𝑛𝑛 = 5; luego 85 − 1 = 1000008 − 1 = 777778 .
Ahora, para hallar el complemento disminuido a uno se resta el número dado:
Sol. (a): N16C 1 = (168 1) 24 BCA0 F 716 = FFFFFFFF16 24 BCA0 F 716 = DB 435F 0816
C −1
Sol. (b): N 2 = (211 − 1) − 100111011012 = 111111111112 − 100111011012 = 01100010010 2
Sol. (c): N 8C −1 = (8 7 − 1) − 1265730 8 = 7777777 8 − 1265730 8 = 6512047 8
En cualquier sistema de numeración el complemento disminuido a uno se puede hallar con la fórmula resultante de
la Ec.1, Ec.2 y Ec.3 de la siguiente forma:
[(b n − 1) − N b ] = [(b − 1)(b − 1)....(b − 1)(b − 1) − (a n −1 )(a n − 2 )....(a1 )(a 0 )] Donde cada (b-1) corresponde al
dígito de mayor peso en el sistema de numeración de base b. Los aj son los n dígitos del número que se va
complementar, con j=0,1,....,n-2,n-1. El complemento disminuido a uno se halla, en forma directa, de la siguiente
manera:
a) FCBC4016; b) 1010110112
Solución (a): N 16C −1 = FFFFFF16 − FCBC 4016 = 0343BF16
C −1
Solución (b): N 2 = 1111111112 − 1010110112 = 010100100 2
Complemento a uno.
Es un caso particular del complemento disminuido a uno de la base binaria, tiene muchas aplicaciones en los circuitos
digitales y sistemas de computación. Sirven para representar tablas numéricas de cantidades positivas y negativas,
invertir los estados de los bits que conforman el dato binario y es utilizado como paso previo para hallar el
complemento a dos. De la Ecuación 2 se puede determinar que el complemento a uno se obtiene invirtiendo el
estado o nivel de los bits que conforman la cifra.
a) 1100010101011110102; b) 1010110101012
Yamil Armando Cerquera Rojas – yacerque@gmail.com
C −1
Solución (a): N 2 = 0011101010100001012
C −1
Solución (b): N 2 = 010100101010 2
Complemento a dos.
Es un caso particular del complemento a la base del sistema binario, tiene muchas aplicaciones en los circuitos
digitales y sistemas de computación. Sirven para representar tablas numéricas de cantidades positivas y negativas,
invertir los estados de los bits que conforman el dato binario y realizar operaciones aritméticas con signo en el
sistema binario. Con la Ecuación 1 se puede determinar el complemento a dos de un número binario; no obstante,
con la misma ecuación se puede hallar un método directo para obtener también el complemento a dos. Este método
consiste en ir seleccionando y colocando de derecha a izquierda los dígitos binarios hasta conseguir el primer bit en
uno, de allí en adelante se cambian de estado todos los bits restantes.
El otro método para hallar el complemento a dos consiste en obtener el complemento a uno de la cifra y luego
sumarle uno; esto último está reflejado en la (Ec.1.3.1).
En este formato, el bit más significativo (MSB) del dato se utiliza para indicar el signo y los bits restantes representan
la magnitud del número. En la figura 1.2 se puede apreciar la representación del formato utilizado para 16 bits, donde
el más significativo (B15) indica que el signo es negativo si vale uno o positivo si vale cero. Las cantidades positivas
se encuentran en binario normal mientras que los números negativos están en complemento a dos, esto significa
que estos últimos, se deben complementar para poder hallar su verdadero valor.
N
B
P
I
Yamil Armando Cerquera Rojas – yacerque@gmail.com
… …
+5 00000000 00000101
+4 00000000 00000100
+3 00000000 00000011
+2 00000000 00000010
+1 00000000 00000001
0 00000000 00000000
-1 11111111 11111111
COMPLEMENTO
-2 11111111 11111110
NEGATIVOS
-3 11111111 11111101
A DOS
-4 11111111 11111100
-5 11111111 11111011
…. …
-32767 10000000 00000001
El complemento de un número, en éste formato, es igual que cambiar el signo del mismo. Por otra parte, el
complemento del complemento da como resultado el mismo número. N 2 ( N 2 ( X )) = X
C C
Ejemplo: Determinar el valor de los siguientes números dados en representación con signo de 16 bits (Formato de
16 bits):
Solución (a): El bit 15 del dato vale uno; esto significa que el número es negativo y está dado en complemento a dos.
Primero se debe complementar el dato para hallar su verdadero valor en binario y después se transforma a decimal.
N 2C = 0011010101001000 2 = −1464010
Solución (b): Se debe transformar hexadecimal a binario y completar con ceros a la izquierda en caso de que el dato
no tenga los 16 bits completos. Luego se hace la transformación a decimal.
7 FA816 = 0111111110101000 2 = +3268010
Solución (c): El bit 15 del dato vale uno; esto significa que el número es negativo y está dado en complemento a dos.
Primero se debe complementar el dato para hallar su verdadero valor en binario y después se transforma a decimal.
N 2C = 0000001111100100 2 = −99610
Solución (d): Se debe transformar octal a binario y completar con ceros a la izquierda en caso de que el dato no tenga
los 16 bits completos. Luego se hace la transformación a decimal.
176102 8 = 1111110001000010 2
N 2C = 0000001110111110 2 = −95810
Solución (e): Se debe transformar hexadecimal a binario y completar con ceros a la izquierda en caso de que el dato
no tenga los 16 bits completos. Luego se hace la transformación a decimal.
FA816 = 111110101000 2 = 0000111110101000 2 = +400810
La suma y resta son las operaciones básicas realizadas por los microprocesadores, cualquiera otra operación, es
consecuencia recursiva de éstas. A continuación se describen estas dos operaciones aritméticas, realizadas con
números binarios en complemento a dos utilizando formato de signo y magnitud de 16 bits.
Son cuatro casos que se presentan al sumar dos datos en formato con signo de complemento a dos:
El resultado debe ser positivo, y el bit más significativo de la suma, siempre dará cero.
Ejemplo: A = 1000111110001002; B = 100101101110112.
Antes de realizar la suma binaria se debe tener la precaución de sumar en decimal los números. De esta manera se
puede chequear el resultado de la suma para tener la certeza de que no exceda el valor +3276710 y por lo tanto no
sobrepasar el formato de 16 bits (Esto se conoce como OVERFLOW). También el 16vo bit en uno señala el sobreflujo
de la operación.
El resultado debe poseer el signo del que tenga mayor valor absoluto. En este caso el resultado es positivo y el 16vo
bit vale cero.
Ejemplo: A = 11010110010101102; B = 1101101101110112
El resultado debe poseer el signo del que tenga mayor valor absoluto. En este caso el resultado es negativo y el 16vo
bit vale cero; del mismo modo no se debe tomar en cuenta el acarreo del 17vo bit.
Ejemplo: A = 110110110101012; B = 10010110111010012
A = 11110011111100002; B = 1001110111001012
Yamil Armando Cerquera Rojas – yacerque@gmail.com
Con dos números de distintos signos se dan los casos de acarreo en el 17vo bit. Si éste acarreo es cero significa que
el resultado es negativo y se debe complementar para hallar su verdadero valor de la otra forma, si el acarreo es uno,
entonces el signo del resultado es mayor o igual a cero y se encuentra en verdadero valor.
El resultado debe ser negativo, por lo tanto el bit más significativo de la suma siempre dará uno.
Antes de realizar la suma binaria se debe tener la precaución de sumar en decimal los números. De esta manera se
puede chequear el resultado de la suma para tener la certeza de que no exceda el valor -3276710 y por lo tanto no
sobrepasar el formato de 16 bits (Esto se conoce como OVERFLOW). También el 16vo y/o 17vo bits en cero señalan
el sobreflujo de la operación.
La resta en complemento a dos resuelve el problema de esta operación con los signos. Por ejemplo, el sustraendo
negativo y minuendo positivo produce un resultado positivo; la resta de dos números A y B negativos puede dar
resultados positivos o negativos. Para realizarla se procede con la fórmula definida de la siguiente forma:
A − B = A + N 2C −1 ( B) + 1 = A + N 2C ( B) (Ec.1.5); La diferencia de dos números, A menos B es equivalente a la
suma de A más el complemento a dos de B.
I) Resta de dos números positivos. El resultado puede presentar varias formas que se determinan con los siguientes
casos:
(A mayor o igual que B):
Yamil Armando Cerquera Rojas – yacerque@gmail.com
De está manera, el resultado queda en forma binaria normal y es igual a valor del 17vo bit no se toma en cuenta
para el resultado. En decimal A=2375110 y B=1518610; entonces A-B=856510 = 00100001011101012
De está manera, el resultado es negativo y queda en forma de complemento a dos, el acarreo del 17vo bit no se
toma en cuenta. Sin embargo, para saber el verdadero valor, el resultado se debe complementar a dos. Este es un
número binario negativo de 16 bits, lo cual tiene un valor de: N 2 ( N 2 ( B )) = 01011011011010112 . En decimal
C C
El resultado puede presentar varias formas que se determinan aplicando los mismos casos de la suma en formato de
16 bits.
Tabla 1. 3. Resumen de las operaciones suma y resta binaria con los datos A y B, utilizando el formato de 16 bits.
Acarreo Acarreo
Operación 17vo bit 16vo bit Resultado Observaciones
Estas representaciones son utilizadas por las computadoras para procesar cálculos numéricos con formatos grandes.
Consiste en una cadena de bits que guardan relación con la notación científica, y pueden representar números
enteros y números reales tanto negativos como positivos. Los formatos más conocidos son la coma fija y la coma
flotante, también denominados punto fijo y punto flotante respectivamente. Antes de comenzar a describir estos
formatos se debe entender el funcionamiento de un caso especial de complemento a dos el cual se denomina
representación con exceso o sesgada.
Son representaciones para números con signo que eliminan el centrado de la representación básica en complemento
a dos. Por ejemplo para indicar números decimales desde un valor numérico -P10 hasta +P10 es necesario desplazar
el equivalente binario (-P10 )2 sumando P2 unidades positivas. Esta cantidad se conoce como exceso o sesgo. Las
representaciones con exceso se utilizan, con frecuencia, para representar los exponentes de los números con coma
flotante. En la tabla 1.4 se pueden observar las representaciones desde -810 hasta +810 en complemento a dos y en
código con exceso donde P2 = 10002. En complemento a dos -810 es igual a 10002. Sin embargo, la representación del
mismo número negativo en código desplazado con exceso 8 es de 00002; es de hacer notar que solamente ocurre un
cambio en el bit más significativo (MSB: Most Significative Bit) del código con exceso. Por lo tanto, la representación
de cualquier código con exceso -P, para indicar números negativos, se forma sumando el valor de P a cada palabra
o número del código.
0 0000 1000
-1 1111 0111
-2 1110 0110
-3 1101 0101
-4 1100 0100
-5 1011 0011
-6 1010 0010
-7 1001 0001
-8 1000 0000
Los números fraccionarios y con signo se pueden representar mediante la coma fija; ejemplo de esto se puede
apreciar en la tabla 1.2 y la figura 1.3(a) donde se tiene la representación de números enteros con signo en formato
de 16 bits. No obstante, existe otra representación para coma fija, la cual consiste en fijar la posición de la coma
después del bit de signo; ver figura 1.3(b) respectivamente. Los restantes bits deben indicar la magnitud fraccionaria.
N = Mxb E (Ec.1.6); donde M es la mantisa o significado y se representa en coma fija, este valor indica la cantidad
de dígitos significativos que tiene el número N de coma flotante. El valor E es el exponente o característica, también
de coma fija; está dado en formato de complemento a dos con exceso y b es la base del sistema. En forma general,
de la Ec.1.1 se puede obtener la representación con signo de coma fija y está dada por:
N = ± (a n −1 a n − 2 ........a 0 , a −1 a − 2 .....a − k ) b , ahora sustituyendo por el formato de coma fija, dada en la figura
1.3(b), se obtiene la forma de coma flotante
N = ±(0, a n −1 a n − 2 .......a − k ) xb n
Yamil Armando Cerquera Rojas – yacerque@gmail.com
Ecuación 3
M = ±(0, a n −1 a n − 2 a n −3 .........a − k ) (Ec.1.7).
Existen varias formas de representar los formatos de coma flotante; sin embargo, los que más se utilizan son los
siguientes:
• N = Mxb E
• N = ( M ÷ b) xb E +1
• N = ( Mxb) xb E −1
En las figuras 1.4(a) y 1.4(b) se definen los formatos en coma flotante para datos numéricos reales cortos y largos
utilizados en los computadores.
La tabla 1.5 muestra un resumen de los formatos de precisión sencilla y doble (corto y largo) respectivamente;
usados en los sistemas de computación.
TOTAL DE BITS BITS DE LA MANTISA BITS DEL EXPONENTE EXCESO DEL EXPONENTE
FORMATO
Estándar IEEE
754-1985
Precisión sencilla 32 24 8 128
Doble Precisión 64 53 11 1024
IBM 360
Precisión sencilla 32 24 7 64
Doble precisión 64 56 7 64
DEC VAX 11/780
Formato F 32 24 8 128
Formato D 64 56 8 128
Formato G 64 53 11 1024
Tabla 1.5. Formatos comunes para números representados en coma flotante.
Yamil Armando Cerquera Rojas – yacerque@gmail.com
a) 11011101,11012 b) 0,00001110101012
Solución (a): Se debe llevar a la forma N = Mxb ; primero hay que hallar la mantisa con la Ecuación 3 y luego
E
M=+(0,1101110111010)2
E=+810=+(1000)2; si el bit de signo es positivo entonces E'=01002. En este caso hay que sumarle al exponente un
exceso de 1610; E= 010002+100002 = 110002
Solución (b): Se debe llevar a la forma N = Mxb ; primero hay que hallar la mantisa con la Ecuación 3 y luego
E
M=+(0,111010101)2
E=-410=-(100)2; si el bit de signo es negativo entonces E'=11002. En este caso hay que sumarle al exponente un exceso
de 810; E= 11002+10002 = 01002
La solución final queda de la siguiente forma:
bs Exponente E Mantisa M
0 0100 111010101