Académique Documents
Professionnel Documents
Culture Documents
Sistemas de numeracin
Un sistema de numeracin es un conjunto de smbolos y reglas que permiten representar datos numricos. Los sistemas de numeracin actuales son sistemas posicionales, que se caracterizan porque un smbolo tiene distinto valor segn la posicin que ocupa en la cifra. 1.
El sistema de numeracin que utilizamos habitualmente es el decimal, que se compone de diez smbolos o dgitos (0, 1, 2, 3, 4, 5, 6, 7, 8 y 9) a los que otorga un valor dependiendo de la posicin que ocupen en la cifra: unidades, decenas, centenas, millares, etc. El valor de cada dgito est asociado al de una potencia de base 10, nmero que coincide con la cantidad de smbolos o dgitos del sistema decimal, y un exponente igual a la posicin que ocupa el dgito menos uno, contando desde la derecha. En el sistema decimal el nmero 528, por ejemplo, significa: 5 centenas + 2 decenas + 8 unidades, es decir: 5*102 + 2*101 + 8*100 o, lo que es lo mismo: 500 + 20 + 8 = 528 En el caso de nmeros con decimales, la situacin es anloga aunque, en este caso, algunos exponentes de las potencias sern negativos, concretamente el de los dgitos colocados a la derecha del separador decimal. Por ejemplo, el nmero 8245,97 se calculara como: 8 millares + 2 centenas + 4 decenas + 5 unidades + 9 dcimos + 7 cntimos 8*103 + 2*102 + 4*101 + 5*100 + 9*10-1 + 7*10-2, es decir: 8000 + 200 + 40 + 5 + 0,9 + 0,07 = 8245,97
Expresa, en cdigo binario, los nmeros decimales siguientes: 191, 25, 67, 99, 135, 276 i. El tamao de las cifras binarias
La cantidad de dgitos necesarios para representar un nmero en el sistema binario es mayor que en el sistema decimal. En el ejemplo del prrafo anterior, para representar el nmero 77, que en el sistema decimal est compuesto tan slo por dos dgitos, han hecho falta siete dgitos en binario. Para representar nmeros grandes harn falta muchos ms dgitos. Por ejemplo, para representar nmeros mayores de 255 se necesitarn ms de ocho dgitos, porque 28 = 256 y podemos afirmar, por tanto, que 255 es el nmero ms grande que puede representarse con ocho dgitos.
Como regla general, con n dgitos binarios pueden representarse un mximo de 2n, nmeros. El nmero ms grande que puede escribirse con n dgitos es una unidad menos, es decir, 2n 1. Con cuatro bits, por ejemplo, pueden representarse un total de 16nmeros, porque 24 = 16 y el mayor de dichos nmeros es el 15, porque 24-1 = 15.
Ejercicio 2: Averigua cuntos nmeros pueden representarse con 8, 10, 16 y 32 bits y cul es el nmero ms grande que puede escribirse en cada caso. Ejercicio 3: Dados dos nmeros binarios: 01001000 y 01000100 Cul de ellos es el mayor? Podras compararlos sin necesidad de convertirlos al sistema decimal?
El inconveniente de la codificacin binaria es que la representacin de algunos nmeros resulta muy larga. Por este motivo se utilizan otros sistemas de numeracin que resulten ms cmodos de escribir: el sistema octal y el sistema hexadecimal. Afortunadamente, resulta muy fcil convertir un nmero binario a octal o a hexadecimal. En el sistema de numeracin octal, los nmeros se representan mediante ocho dgitos diferentes: 0, 1, 2, 3, 4, 5, 6 y 7. Cada dgito tiene, naturalmente, un valor distinto dependiendo del lugar que ocupen. El valor de cada una de las posiciones viene determinado por las potencias de base 8. Por ejemplo, el nmero octal 2738 tiene un valor que se calcula as: 2*83 + 7*82 + 3*81 = 2*512 + 7*64 + 3*8 = 149610 2738 = 149610
122 : 8 = 15 15 : 8 = 1 1:8=0
Resto:
2 Resto: 7 Resto: 1
Tomando los restos obtenidos en orden inverso tendremos la cifra octal: 12210 = 1728
Ejercicio 5: Convierte los siguientes nmeros decimales en octales: 63 , 513 , 119
10 10 10
Ensayemos, utilizando la tcnica habitual de divisiones sucesivas, la conversin de un nmero decimal a hexadecimal. Por ejemplo, para convertir a hexadecimal del nmero173510 ser necesario hacer las siguientes divisiones: 1735 : 16 = 108 108 : 16 = 6 6 : 16 = 0 Resto: 7 Resto: C es decir, 1210 Resto: 6
De ah que, tomando los restos en orden inverso, resolvemos el nmero en hexadecimal: 173510 = 6C716
Ejercicio 8: Convierte al sistema hexadecimal los siguientes nmeros decimales: 351910, 102410, 409510
Cada dgito de un nmero octal se representa con tres dgitos en el sistema binario. Por tanto, el modo de convertir un nmero entre estos sistemas de numeracin equivale a "expandir" cada dgito octal a tres dgitos binarios, o en "contraer" grupos de tres caracteres binarios a su correspondiente dgito octal.
Por ejemplo, para convertir el nmero binario 1010010112 a octal tomaremos grupos de tres bits y los sustituiremos por su equivalente octal: 1012 = 58 0012 = 18 0112 = 38 y, de ese modo: 1010010112 = 5138
Ejercicio 9: Convierte los siguientes nmeros binarios en octales: 11011012, 1011102, 110110112, 1011010112
La conversin de nmeros octales a binarios se hace, siguiendo el mismo mtodo, reemplazando cada dgito octal por los tres bits equivalentes. Por ejemplo, para convertir el nmero octal 7508 a binario, tomaremos el equivalente binario de cada uno de sus dgitos: 78 = 1112 58 = 1012 08 = 0002 y, por tanto: 7508 = 1111010002
Ejercicio 10: Convierte los siguientes nmeros octales en binarios: 258, 3728, 27538
DECIMAL 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
BINARIO 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
HEXADECIMAL 0 1 2 3 4 5 6 7 8 9 A B C D E F
La conversin entre nmeros hexadecimales y binarios se realiza "expandiendo" o "contrayendo" cada dgito hexadecimal a cuatro dgitos binarios. Por ejemplo, para expresar en hexadecimal el nmero binario 1010011100112 bastar con tomar grupos de cuatro bits, empezando por la derecha, y reemplazarlos por su equivalente hexadecimal: 10102 = A16 01112 = 716 00112 = 316 y, por tanto: 1010011100112 = A7316 En caso de que los dgitos binarios no formen grupos completos de cuatro dgitos, se deben aadir ceros a la izquierda hasta completar el ltimo grupo. Por ejemplo: 1011102 = 001011102 = 2E16
Ejercicio 11: Convierte a hexadecimales los siguientes nmeros binarios: 10101001010111010102, 1110000111100002, 10100001110101112
La conversin de nmeros hexadecimales a binarios se hace del mismo modo, reemplazando cada dgito hexadecimal por los cuatro bits equivalentes de la tabla. Para convertir a binario, por ejemplo, el nmero hexadecimal 1F616 hallaremos en la tabla las siguientes equivalencias: 116 = 00012 F16 = 11112 616 = 01102 y, por tanto: 1F616 = 0001111101102
Ejercicio 12: Convierte a binario los nmeros hexadecimales siguientes: 7A5D , 1010 , 8F8F
16 16 16
ARITMTICA BINARIA
Operaciones elementales con nmeros binarios
Suma de nmeros binarios Resta de nmeros binarios
Multiplicar nmeros binarios Dividir nmeros binarios La Unidad Aritmtico Lgica, en la CPU del procesador, es capaz de realizar operaciones aritmticas, con datos numricos expresados en el sistema binario. Naturalmente, esas operaciones incluyen la adicin, la sustraccin, el producto y la divisin. Las operaciones se hacen del mismo modo que en el sistema decimal, pero debido a la sencillez del sistema de numeracin, pueden hacerse algunas simplificaciones que facilitan mucho la realizacin de las operaciones.
Suma en binario
Para aprender a sumar, con cinco o seis aos de edad, tuviste que memorizar las 100 combinaciones posibles que pueden darse al sumar dos dgitos decimales. La tabla de sumar, en binario, es mucho ms sencilla que en decimal. Slo hay que recordar cuatro combinaciones posibles:
+ 0 1
0 0 1
1 1 0+1
1+0=1 Pero la suma de 1+1, que sabemos que es 2 en el sistema decimal, debe escribirse en binario con dos cifras (10) y, por tanto 1+1 es 0 y se arrastra una unidad, que se suma a la posicin siguiente a la izquierda. Veamos algunos ejemplos: 010 + 101 = 111 210 + 510 = 710 001101 + 100101 = 110010 1310 + 3710 = 5010 1011011 + 1011010 = 10110101 9110 + 9010 = 18110 110111011 + 100111011 = 1011110110 44310 + 31510 = 75810 Ejercicio 1: Realiza las siguientes sumas de nmeros binarios:
Sustraccin en binario
La tcnica de la resta en binario es, nuevamente, igual que la misma operacin en el sistema decimal. Pero conviene repasar la operacin de restar en decimal para comprender la operacin binaria, que es ms sencilla. Los trminos que intervienen en la resta se llaman minuendo,sustraendo y diferencia.
0 1
0 0 1+1
1 1 0
La resta 0 - 1 se resuelve, igual que en el sistema decimal, tomando una unidad prestada de la posicin siguiente: 10 - 1, es decir, 210 110 = 1. Esa unidad prestada debe devolverse, sumndola, a la posicin siguiente. Veamos algunos ejemplos: 111 101 = 010 710 510 = 210 10001 01010 = 00111 1710 1010 = 710 11011001 10101011 = 00101110 21710 17110 = 4610 111101001 101101101 = 001111100 48910 36510 = 12410 Ejercicio 2: Realiza las siguientes restas de nmeros binarios y comprueba los resultados convirtindolos al sistema decimal:
Dividir los nmeros largos en grupos. En el siguiente ejemplo, vemos cmo se divide una resta larga en tres restas cortas: 100110011101 1001 1001 1101 010101110010 0101 0111 0010 010000101011 0100 0010 1011 Calculando el complemento a dos del sustraendo
i. Complemento a dos
El complemento a dos de un nmero se define como: C2N = 2n N
Veamos un ejemplo: tomemos el nmero N = 1011012, que tiene 6 bits, y calculemos su complemento a dos:
N = 4510
n=6
C1N = C2N - 1
y, por la misma razn:
C2N = C1N + 1
Calculemos el complemento a uno del mismo nmero del ejemplo anterior: siendo N = 101101, y su complemento a dos C2N = 010011
N = 110100101
C1N = 001011010
y su complemento a dos es:
N = 0110110101
El complemento a uno es:
C1N = 1001001010
y el complemento a dos es:
C2N = 1001001011
iii.Restar en binario usando el complemento a dos
Y, por fin, vamos a ver cmo facilita la resta el complemento. La resta binaria de dos nmeros puede obtenerse sumando al minuendo el complemento a dos del sustraendo. Veamos algunos ejemplos: Primer ejemplo:
En el resultado de la suma nos sobra un bit, que se desborda por la izquierda. Pero, como el nmero resultante no puede ser ms largo que el minuendo, el bit sobrante se desprecia. Segundo ejemplo: Hagamos esta otra resta, 219 23 = 196, utilizando el complemento a dos:
11011011 + 11101001 =
111000100
Y, despreciando el bit que se desborda por la izquierda, llegamos al resultado correcto:
110001002 = 19610
Qu fcil! Ejercicio 4: Haz las siguientes restas binarias utilizando la tcnica del complemento a dos. Al terminar, comprueba los resultados haciendo la resta en el sistema decimal:
Multiplicacin binaria
La multiplicacin en binario es ms fcil que en cualquier otro sistema de numeracin. Como los factores de la multiplicacin slo pueden ser CEROS o UNOS, el producto slo puede ser CERO o UNO. En otras palabras, las tablas de multiplicar del cero y del uno son muy fciles de aprender:
0 1
0 0
0 1
En un ordenador, sin embargo, la operacin de multiplicar se realiza mediante sumas repetidas. Eso crea algunos problemas en la programacin porque cada suma de dos UNOS origina un arrastre, que se resuelven contando el nmero de UNOS y de arrastres en cada columna. Si el nmero de UNOS es par, la suma es un CERO y si es impar, un UNO. Luego, para determinar los arrastres a la posicin superior, se cuentan las parejas de UNOS. Veamos, por ejemplo, una multiplicacin:
Para comprobar que el resultado es correcto, convertimos los factores y el resultado al sistema decimal:
3349 * 13 = 43537
correcto!
Ejercicio 5: Haz las siguientes multiplicaciones binarias. Al terminar, comprueba los resultados haciendo las multiplicaciones en el sistema decimal:
Divisin binaria
Igual que en el producto, la divisin es muy fcil de realizar, porque no son posibles en el cociente otras cifras que UNOS y CEROS. Consideremos el siguiente ejemplo, 42 : 6 = 7, en binario:
Se intenta dividir el dividendo por el divisor, empezando por tomar en ambos el mismo nmero de cifras (100 entre 110, en el ejemplo). Si no puede dividirse, se intenta la divisin tomando un dgito ms (1001 entre 100). Si la divisin es posible, entonces, el divisor slo podr estar contenido una vez en el dividendo, es decir, la primera cifra del cociente es un UNO. En ese caso, el resultado de multiplicar el divisor por 1 es el propio divisor. Restamos las cifras del dividendo del divisor y bajamos la cifra siguiente.
El procedimiento de divisin contina del mismo modo que en el sistema decimal. Ejercicio 5: Haz las siguientes divisiones binarias. Al terminar, comprueba los resultados haciendo las divisiones en el sistema decimal:
EJERCICIOS adicionales
1. Realiza las siguientes sumas de nmeros octales:
365 + 23 2732 + 1265 65 + 1773 2. Suma los siguientes nmeros hexadecimales: 17A + 3C 20F5 + 31B 2E70C + 1AA7F 3. Resta los siguientes nmeros octales: 365 - 23 2732 - 1265 1773 65 4. Realiza las siguientes restas de nmeros hexadecimales: 17A - 3C 20F5 - 31B 2E70C 1AA7F
http://platea.pntic.mec.es/~lgonzale/index.html