Académique Documents
Professionnel Documents
Culture Documents
para las dos columnas; por tanto si contamos (sumamos) una unidad ms, debemos
poner a cero la columna de la derecha y sumar 1 a la de la izquierda (decenas). Pero la
columna de la izquierda ya ha agotado los smbolos disponibles, as que la ponemos a
cero, y sumamos 1 a la siguiente columna (centena). Como resultado nos queda que
99+1=100.
Como vemos, un sistema de numeracin posicional se comporta como un
cuentakilmetros: va sumando 1 a la columna de la derecha y, cuando la rueda de esa
columna ha dado una vuelta (se agotan los smbolos), se pone a cero y se aade una
unidad a la siguiente columna de la izquierda.
Pero estamos tan habituados a contar usando el sistema decimal que no somos
conscientes de este comportamiento, y damos por hecho que 99+1=100, sin pararnos
a pensar en el significado que encierra esa expresin.
Tal es la costumbre de calcular en decimal que la inmensa mayora de la poblacin ni
siquiera se imagina que pueden existir otros sistemas de numeracin diferentes al de
base 10, y tan vlidos y tiles como este. Entre esos sistemas se encuentran el de
base 2 Sistema binario, de base 8 Sistema octal y el de base 16 Sistema hexadecimal.
Teorema Fundamental de la Numeracin
Este teorema establece la forma general de construir nmeros en un sistema de
numeracin posicional. Primero estableceremos unas definiciones bsicas:
N: Sistema de numeracin
b: base del sistema de numeracin. Nmero de smbolos permitidos en el sistema.
d: un smbolo cualquiera de los permitidos en el sistema de numeracin
n: nmero de dgitos de la parte entera.
,: coma decimal. Smbolo utilizado para separar la parte entera de un nmero de su
parte decimal.
k: nmero de dgitos de la parte decimal.
La frmula general para construir un nmero (cualquier nmero) N en un sistema de
numeracin posicional de base b es la siguiente:
El valor total del nmero ser la suma de cada dgito multiplicado por la potencia de la
base correspondiente a la posicin que ocupa en el nmero.
Esta representacin posibilita la realizacin de sencillos algoritmos para la ejecucin de
operaciones aritmticas.
Ejemplo en el Sistema Decimal
En el sistema decimal los smbolos vlidos para construir nmeros son {0...9} (0 hasta
9, ambos incluidos), por tanto la base (nmero de smbolos vlidos en el sistema) es
10.
En la figura inferior podemos ver el teorema fundamental de la numeracin aplicado
al sistema decimal.
Los dgitos a la izquierda de la coma decimal representados por dn ... d2 d1 d0 , toman
el valor correspondiente a las potencias positivas de la base (10 en el sistema
decimal), en funcin de la posicin que ocupan en el nmero, y representan
respectivamente al dgito de las n-unidades (10n), centenas (102=100), decenas
(10=10) y unidades (100=1), ya que como se ve en el grfico estn colocados en las
posiciones n..., tercera, segunda y primera a la izquierda de la coma decimal.
Los dgitos a la derecha de la coma decimal d-1, d-2, d-3 ... d-n representan
respectivamente al dgito de las dcimas (10-1=0,1), centsimas (10-2=0,01),
milsimas (10-3=0,001) y n-simas (10-n) .
Por ejemplo, el nmero 1492,36 en decimal, puede expresarse como:
Ejemplo en el Sistema Binario
Tomemos ahora el sistema binario o de base 2. En este sistema los dgitos vlidos son
{0,1}, y dos unidades forman una unidad de orden superior.
(10-1) = 0.1 (100) = 1 (101) = 10 (102) = 100 (103) = 1000 (104) = 10000 (105) =
100000 (106) = 10000000
En programacin es frecuente acudir a diferentes sistemas de numeracin segn las
circunstancias.
Hay que tener en cuenta que el hombre usa el sistema decimal, (segn una opinin
bastante general debido a una circunstancia ms o menos afortunada: por la simple
razn de que tiene diez dedos entre las dos manos. A menudo se usa el cinco como
base de numeracin auxiliar). La palabra dgito y dedo tienen la misma raiz latina, por
eso usamos una numeracin con 10 dgitos o dedos.
Hubiera sido mucho ms prctico usar un sistema de numeracin basado en un
nmero con ms factores, como el 12 (3*2*2) o mejor todava el 8 (2*2*2) o el 16
(2*2*2*2). Pero por suerte o por desgracia:
1. Los humanos tenemos diez dedos y
2. Los humanos contamos con los dedos (al menos al principio), porque estn muy a
mano.
Para contar de 1 a 10 es fcil, pero qu pasa cuando hay que contar ms de diez
cosas?. Pues usamos las manos de un "amigo" para contar cuantas veces hemos usado
los dedos de las nuestras, as "12", sera dos ms una vez diez.
Otra circunstancia curiosa es que en el sistema de numeracin que usamos los
nmeros se leen y escriben de derecha a izquierda, al revs del modo en que
escribimos las palabras.
Cuando interpretamos nmeros de varias cifras, hay que empezar por la derecha, el
primer dgito son unidades, el siguiente decenas, es decir cuantos grupos de 10
elementos estamos contando. El siguiente centenas, es decir el nmero de grupos de
10 elementos de grupos de 10 elementos, o sea el nmero de grupos de 100
elementos. Y as sucesivamente.
Si quieres saber ms detalles sobre la historia de los sistemas de numeracin, consulta
este enlace.
Sistemas de numeracin en la programacin
En C y C++ se usan bsicamente cuatro sistemas de numeracin:
Binario (base 2)
Octal (base 8)
Decimal (base 10)
Hexadecimal (base 16)
Sistema binario, numeracin en base 2
El sistema binario es el que usan los ordenadores, que es como si slo tuvieran un
dedo, su unidad bsica de memoria, el bit, slo puede tomar dos valores, inactivo o
activo, y se codifican como 0 y 1, respectivamente.
Los ordenadores se quedan sin dedos enseguida, en cuanto tienen que contar ms de
uno, as que aaden ms dgitos.
Por ejemplo, veamos el nmero binario 10110.
Estamos en base 2, as que el nmero se calcula as:
0 * 2^0 + 1 * 2^1 + 1 * 2^2 + 0 * 2^3 + 1 * 2^4 = 2 + 4 + 16 = 22 (decimal)
Este tipo de numeracin resulta muy til cuando cada bit puede significar cosas
diferentes para un ordenador.
Sistema octal, numeracin en base 8
El sistema octal usa ocho dgitos: 0, 1, 2, 3, 4, 5, 6 y 7. Este es el sistema de
numeracin que usaramos si tuviramos manos de cuatro dedos, como los
Simpsons :-)
Por ejemplo, un nmero en octal sera 125. Estamos en base 8,as que el nmero se
traduce a decimal as:
5 * 8^0 + 2 * 8^1 + 1 * 8^2 = 5 + 2 * 8 + 64 = 85 (decimal)
Desconozco el origen histrico de por qu de usa este sistema de numeracin en
As, por ejemplo, en base 2 el nmero 2 se expresa como 10, en base 8 u octal, el
nmero 8 se expresa como 10,en base 10 o decimal el nmero 10 se expresa como 10
y en base 16 o hexadecimal, el nmero 16 se expresa como 10..
As que en general, el valor de un nmero expresado en base n ser:
Nmero en base 'n': "abcde"
Valor: e*n^0 + d*n^1 + c*n^2 + b * n^3 + a*n^4
Donde "n^x" se lee como n elevado a la x potencia.
Algoritmo para conversin de bases
Ahora veamos el algoritmo para hacer un conversor universal.
Supongamos que el nmero est en un array que se llama "Numero":
char Numero [] = "56652";
1. Lo primero, en un programa bien hecho, habra que comprobar que el nmero
cumple las reglas, es decir, que no hay dgitos prohibidos en el sistema de numeracin
que usamos.
2. Necesitamos el nmero de dgitos:
int N Dgitos = strlen (Numero);int Base = 8; /* Para base 8, ser 16 para
hexadecimal y 2 para binario */
3. Empezaremos a recorrer el nmero desde el final, as que el primer exponente ser
0, cualquier nmero elevado a 0 es 1. En lugar de calcular n^Digito No, calcularemos
el multiplicador, que se puede obtener multiplicando la base por el multiplicador
anterior. Por ejemplo, para base 10 la secuencia de multiplicadores es 1, 10, 100,
1000, 10000, etc, para base 8 es 1, 8, 64, 512, etc
int Multiplicador=1;int DigitoNo = NDigitos-1; /* Los arreglos tienen ndices
empezando por el 0 */Valor = 0;
4. Recorremos el nmero desde el final: Numero [DigitoNo]
while(DigitoNo >= 0){ Valor += Valor Digito(Numero[DigitoNo])*Multiplicador;
Multiplicador *= Base; DigitoNo--;}
5. El resultado ser Valor.
Adems, necesitamos una funcin que calcule el valor de un dgito en formato ASCII y
lo convierta a int. Para que sirva para el sistema hexadecimal debe entender los
caracteres '0' a '9', 'a' a 'f' y 'A' a 'F'.
int Valor Digito(char d){ if(d >= '0' && d <= '9') return d-'0'; if(d >= 'a' && d <= 'f')
return 10+d-'a'; if(d >= 'A' && d <= 'F') return 10+d-'A'; return -1; /* Carcter
prohibido */}
CONCLUSION
Con esta investigacin se pretende que se conozca la importancia del sistema decimal,
un sistema de numeracin en el que las cantidades se representan utilizando como
base el nmero diez, por lo que se compone de las cifras: cero, uno (1), dos (2), tres
(3), cuatro (4), cinco (5), seis, siete (7), ocho y nueve (9). Este conjunto de smbolos
se denomina nmeros rabes.
Existen muchas maneras por las cuales los maestros podemos actualizarnos y llegar a
dominar el tema, as cuando los alumnos se encuentren en medio de un problema y
realicen una pregunta , ser mucho ms fcil contestarles sin tenerles que inventar
una posible solucin.
Este trabajo nos brinda la oportunidad de recabar en una serie de conceptos que
muchas veces ignoramos, sin mencionar la importancia de nuestro sistema de
numeracin decimal para nuestra vida cotidiana.
Informacin obtenida en:
Plan y programas
http://es.wikipedia.org/wiki/Sistema_decimal"