Si nos centramos en el sistema decimal, podemos hablar de unidades, decenas, centenas..., esto significa que cada cifra tiene un peso que depende de la posición que ocupa y decimos por ello que se trata de un sistema ponderado. La mayoría de los sistemas de numeración son ponderados y solo se recurre a otros tipos en caso de aplicaciones especiales.
Un claro ejemplo de sistema no ponderado es el caso de los números romanos, ya que por ejemplo en XXI, las dos equis representan el valor 10 aunque tengan distinta posición, sin embargo en 221, el primer 2 representa 2 centenas (200) pero el segundo 2 representa 2 decenas (20), por lo tanto, el valor depende de la posición. Sin lugar a dudas, la aparición del sistema decimal facilitó notablemente el cálculo y mas tarde el sistema binario facilitó automatizarlo. En este apartado solo trataremos los sistemas ponderados.
Los más utilizados son el decimal (base 10), el binario (base 2) y el hexadecimal (base 16). Todos conocemos bien la aplicación del sistema decimal, mientras que el binario viene a ser el que conocen las máquinas, de él se valen para contar lo mismo que nosotros contamos en decimal. El sistema binario solo tiene dos cifras distintas (0 y 1) y la razón por la que resulta ideal en la automatización del cálculo es bien simple: Cualquier operación (como la suma) con dos cifras, supone recordar 100 combinaciones posibles en sistema decimal (0 + 0 = 0, 0 + 1 = 1, etc.) mientras que en binario solo existen 4 combinaciones posibles. Para que un dispositivo pueda ejecutar una operación, necesita tener memorizadas las combinaciones, por lo tanto ya tenemos de sobra justificado que es el sistema binario el que mejor se adapta. Si la información que puede manipular un dispositivo solo admite dos estados posibles, también es claro que uno de los estados puede representar al 0 y el otro representará al 1. Por ejemplo, si utilizamos una alimentación eléctrica y añadimos elementos de corte como pudieran ser interruptores, se conseguirán fácilmente señales que transmiten tensión o no la transmiten. Asignando valor 0 si no hay tensión y valor 1 si hay tensión, ya tenemos un generador básico de números binarios.
Si las máquinas solo saben trabajar en binario, podemos preguntarnos para qué hace falta otro sistema como es el hexadecimal. Esto se debe a la necesidad de entendermos con la máquina (generalmente cuando se programa), para interpretar datos que recibimos de ella e introducir datos en la máquina (los cuales deben ser convertidos a binario para que los entienda). Cuando se manejan valores muy grandes, los equivalentes binarios tienen un número de ceros y unos demasiado elevado y su introducción, cifra por cifra, hace perder mucho tiempo. El sistema hexadecimal permite manipular con facilidad valores binarios muy grandes, porque su equivalente hexadecimal es muy corto y resulta muy simple la conversión entre ambos sistemas.
En general, los símbolos que representan las cifras de un sistema podrían tener cualquier forma, pero ya que estamos tan acostumbrados a manejar los símbolos 0 a 9, es lógico que también se utilicen en los demás casos, por ejemplo en binario ya sabemos que son el 0 y el 1. Esto es aplicable siempre que el sistema maneje como mucho 10 símbolos distintos, pero en el sistema headecimal se necesitan hasta 16 símbolos diferentes. Bueno, simplemente se añaden letras a partir del 9, comenzando por la A. Las cifras del sistema hexadecimal serán entonces: 0 1 2 3 4 5 6 7 8 9 A B C D E F.
Cuando puede haber duda acerca del sistema en que está representado un número se acostumbra a poner como subindice la base del sistema. Por ejemplo el valor 11001 puede ser decimal, binario o en cualquier otra base, pero 110012 no deja lugar a dudas (es binario).