Skip to Content
Organización del ComputadorSistemas de Numeración

Sistemas de Numeración

Números Decimales y Binarios

Para seguir con este tema, recomendamos repasar esta sección: Desarrollos en base b (MD1)

El sistema numérico decimal es base \(10\), porque usa \(10\) dígitos y los coeficientes se multiplican por potencias de \(10\).
El sistema binario es base \(2\), porque usa \(2\) dígitos (los coeficientes solo pueden ser \(0 \lor 1\)).
Cada coeficiente \(a_j\) se multiplica por \(2^j\).

Un número con punto decimal se representa con una serie de coeficientes:

\[\begin{align} &a_{n} \; a_{4} \; a_{3} \; a_{2} \; a_{1} \; a_{0} \; .a_{-1} \; a_{-2} \; a_{-3} \; \ldots a_{-n} \; \\ &10^{n}a_{n} + 10^{4}a_{4} + 10^{3}a_{3} + 10^{2}a_{2} + 10^{1}a_{1} + 10^{0}a_{0} + 10^{-1}a_{-1} + 10^{-2}a_{-2} + 10^{-3}a_{-3} + \ldots + 10^{-n}a_{-n} \\ \end{align} \]

Donde \(a_{n}\) es el coeficiente más grande y \(a_{-n}\) es el coeficiente más pequeño.
El punto decimal se usa para separar la parte entera de la parte fraccionaria.

El sistema binario sería:

\[\begin{align} &2^{n}a_{n} + 2^{4}a_{4} + 2^{3}a_{3} + 2^{2}a_{2} + 2^{1}a_{1} + 2^{0}a_{0} + 2^{-1}a_{-1} + 2^{-2}a_{-2} + 2^{-3}a_{-3} + \ldots + 2^{-n}a_{-n} \\ \end{align} \]

Un ejemplo de número decimal a binario es \(13.62 = (1101)_{2}\). En lugar de denominar a los binarios como binary digits se les llama bits.

Podemos realizar operaciones aritméticas con números binarios de la siguiente forma:

\[\begin{align} &\quad \; 1101 \\ &+1011 \\ &\quad \overline{11000} \\ &\\ &\quad \; 1101 \\ &-1011 \\ &\quad\overline{\;0010} \\ & \\ &\quad \; 1101 \\ &\times \;\; 101 \\ &\quad \overline{\;\; 1101} \\ &\quad 0000 \\ &\;\; 1101 \\ &\overline{\; 1000001} \\ \end{align} \]

Como no es posible \(1+1=2\) en binario, se deja un \(0\) y se lleva un \(1\) al siguiente coeficiente.

Conversiones de base numérica

La conversión de una fracción decimal a un número en base \(r\), pero en lugar de dividir se multiplica por \(r\) y se toma la parte entera.

Ejemplo: Convertir \(0.6875\) a binario y a base \(8\).

\[\begin{align} 0.6875 \times 2 &= 1 + 0.375 &\implies a_{-1} = 1 \\ 0.375 \times 2 &= 0 + 0.75 &\implies a_{-2} = 0 \\ 0.75 \times 2 &= 1 + 0.5 &\implies a_{-3} = 1 \\ 0.5 \times 2 &= 1 + 0 &\implies a_{-4} = 1 \\ \end{align} \]

Tenemos que \(0.6875 = (0.1011)_2\).

\[\begin{align} 0.6875 \times 8 &= 5 + 0.5 &\implies a_{-1} = 5 \\ 0.5 \times 8 &= 4 + 0 &\implies a_{-2} = 4 \\ \end{align} \]

Tenemos que \(0.6875 = (0.54)_8\).

Números Octales y Hexadecimales

Las conversiones entre binario, octal y hexadecimal son fundamentales en las computadoras, ya que \(2^3 = 8 \land 2^4 = 16\). Por lo que cada dígito en octal representa \(3\) bits y cada dígito en hexadecimal representa \(4\) bits.

La siguiente tabla muestra los núemros con diferente base:


DecimalBinarioOctalHexadecimal
\(0\)\(0000\)\(0\)\(0\)
\(1\)\(0001\)\(1\)\(1\)
\(2\)\(0010\)\(2\)\(2\)
\(3\)\(0011\)\(3\)\(3\)
\(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\)

Podemos hacer conversiones de base numérica acomodando los dígitos de forma correspondiente.

Ejemplo: Convertir \((1101.1011)_2\) a octal y hexadecimal.

\[\begin{align} (1101.1011)_2 &= (001 \; 101 \; .001 \; 011)_2 = (15.13)_8 = (D.5)_8 \\ &\\ (1101.1011)_2 &= (D.B)_{16} \end{align} \]

Complementos

Los complementos son una forma de representar números negativos.
Dado un número \(N\) en base \(r\) con \(n\) dígitos, el complemento a \((r - 1)\) es \((r^n - 1) - N\).
En el caso de los binarios \(r = 2 \land r - 1 = 1\), por lo que el complemento a \(1\) es \((2^n - 1) - N\).

El complemento a \(1\) se obtiene cambiando los \(0\) por \(1\) y los \(1\) por \(0\).

Por ejemplo, el complemento a \(1\) de \((1101)_2\) es \((0010)_2\).

El complemento a \(2\) se obtiene sumando \(1\) al complemento a \(1\)

Por ejemplo, el complemento a \(2\) de \((1101)_2\) es \((0011)_2\).

En la definición anterior se considera que el número no lleva punto. De ser el caso, se quita temporalmente para formar el complemento a \(1\) y luego se vuelve a colocar en su lugar.

Por ejemplo, el complemento a \(1\) de \((1101.1011)_2\) es \((0010.0100)_2\).

Números Flotantes

Los números flotantes son una representación de números reales extremadamente grandes o pequeños en notación científica. Este formato puede ser de precisión simple o doble, dependiendo de la cantidad de bits que se usen. En lenguajes como C se usan los tipos float y double para representarlos.

Su formato sería el siguiente:

\[x = (-1)^{s} \times (1 + F) \times 2^{E - B} \]
  • \(s\) corresponde a un bit de signo.
  • \(F\) es la mantisa, un número fraccionario. Si es de precisión simple, se usan \(23\) bits y si es de precisión doble, se usan \(52\) bits.
  • \(E\) es el exponente, un número entero. Si es de precisión simple, se usan \(8\) bits y si es de precisión doble, se usan \(11\) bits. Su valor se calcula como \(E = e - B\), donde \(e\) es el valor del exponente y \(B\) es el sesgo.
  • El sesgo es un número que se le suma al exponente para que no sea negativo. En precisión simple, \(B = 127\) y en precisión doble, \(B = 1023\).

Por ejemplo, el número \(-13.625\) en precisión simple sería:

\[\begin{align} 13.625 &= 1101.1011 \\ &= 1.1011011 \times 2^3 \\ &= 1.1011011 \times 2^{(3 + 127)} \\ &= 1.1011011 \times 2^{130} \\ \end{align} \]

Por lo que \(S\) = \(1\), \(E\) = \(130\) y \(F\) = \(10110110000000000000000\).

Infinitos y NaN

En los números flotantes, existen valores especiales como el infinito y el NaN (Not a Number).

El \(\pm \infty\) se representa con exponente \(= 111 \ldots 1\), y mantisa \(= 000 \ldots 0\).
Este se utiliza cuando un número excede el rango de representación.

El NaN se representa con exponente \(= 111 \ldots 1\), y mantisa \(\neq 000 \ldots 0\).
Este se utiliza cuando se realiza una operación inválida, como dividir por \(0\).

Última vez actualizado el 9 de marzo de 2025