Sistemas de Numeración
Números Decimales y Binarios
Para seguir con este tema, es útil repasar esta sección: Desarrollos en base b (MD1)
El sistema numérico decimal es base , porque usa dígitos y los coeficientes se multiplican por potencias de .
El sistema binario es base , porque usa dígitos (los coeficientes solo pueden ser ).
Cada coeficiente se multiplica por .
Un número con punto decimal se representa con una serie de coeficientes:
Donde es el coeficiente más grande y 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:
Un ejemplo de número decimal a binario es . 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:
Como no es posible en binario, se deja un y se lleva un al siguiente coeficiente.
Existen distintos registros (tamaños de bits) para representar números binarios, como los bytes ( bits).
Conversiones de base numérica
La conversión de una fracción decimal a un número en base , pero en lugar de dividir se multiplica por y se toma la parte entera.
Ejemplo: Convertir a binario y a base .
Tenemos que .
Tenemos que .
Números Octales y Hexadecimales
Las conversiones entre binario, octal y hexadecimal son fundamentales en las computadoras, ya que . Por lo que cada dígito en octal representa bits y cada dígito en hexadecimal representa bits.
La siguiente tabla muestra los núemros con diferente base:
| Decimal | Binario | Octal | Hexadecimal |
|---|---|---|---|
Podemos hacer conversiones de base numérica acomodando los dígitos de forma correspondiente.
Ejemplo: Convertir a octal y hexadecimal.
Puede darse el caso que el número no sea exactamente divisible por o , por lo que se agregan ceros a la izquierda (en la parte entera) o a la derecha (en la parte fraccionaria) para completar el número.
Ejemplo: Expresar y en hexadecimal.
Ejercicios resueltos - Conversión de base numérica
1.
Convertir el siguiente número hexadecimal a binario de bits:
2.
Convertir el siguiente número decimal a binario:
Tenemos que .
3.
Suponiendo que se tienen registros de bits, convertir el siguiente número decimal: a binario sin signo.
Tenemos que .
Complementos
Los complementos son una forma de representar números negativos.
Dado un número en base con dígitos, el complemento a es .
En el caso de los binarios , por lo que el complemento a es .
El complemento a se obtiene cambiando los por y los por .
El complemento a se obtiene sumando al complemento a
Ejemplo:
El complemento a de es .
El complemento a de es .
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 y luego se vuelve a colocar en su lugar.
Ejemplo:
El complemento a de es .
Podemos expresar un número decimal negativo a binario (negativos en complemento a ):
Ejemplo: Convertir a binario, donde su tamaño de registro es de bits.
Primero calculamos el valor absoluto de en binario y agregamos ceros a la izquierda para completar los bits.
Ahora obtenemos el complemento a de .
Por lo que .
Si quisiéramos aumentar el tamaño del registro, al ser negativo, se agregan unos a la izquierda.
Para hacer una resta entre dos números binarios, es más sencillo hacer el complemento a del sustraendo y sumar ambos números.
Ejercicios resueltos - Complementos
1.
Suponiendo que un microprocesador utiliza registros de bits y representación de números negativos en complemento a , convertir el número decimal a binario.
Primero calculamos el valor de en binario.
Tenemos que , se agrega un cero a la izquierda para completar los bits. Ahora obtenemos el complemento a de .
Ahora sumamos al complemento a para obtener el complemento a .
Por lo que .
2.
Convertir el siguiente valor signado de bits a decimal: .
Revertimos la suma y obtenemos el complemento a de .
Ahora cambiamos por
Ahora convertimos el número binario a decimal.
Con el signo negativo, tenemos que .
3.
Dar el resultado de la operación - en decimal, donde se usan registros de bits y representación de números negativos en complemento a .
Primero convertimos ambos números hexadecimales a binario
Ahora obtenemos el complemento a de
Ambos números en decimal son:
La resta - se puede expresar como . En binario, es
Tenemos que .
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
floatydoublepara representarlos.
Su formato sería el siguiente:
- corresponde a un bit de signo.
- es la mantisa, un número fraccionario. Si es de precisión simple, se usan bits y si es de precisión doble, se usan bits.
- es el exponente, un número entero. Si es de precisión simple, se usan bits y si es de precisión doble, se usan bits. Su valor se calcula como , donde es el valor del exponente y es el sesgo.
- El sesgo es un número que se le suma al exponente para que no sea negativo. En precisión simple, y en precisión doble, .
Por ejemplo, el número en precisión simple sería:
Para seguir el formato, necesitamos desplazar el cuantas veces sea necesario para solo tener una unidad entera. En este caso, tres veces
Tenemos que:
- (es negativo)
- (agregamos ceros para llegar a bits)
Sumando todos los bits, tenemos bits. Agrupando (en ese orden) de a cuatro podemos dar con el número hexadecimal
Infinitos y NaN
En los números flotantes, existen valores especiales como el infinito y el NaN (Not a Number).
El se representa con exponente , y mantisa .
Este se utiliza cuando un número excede el rango de representación.
El NaN se representa con exponente , y mantisa .
Este se utiliza cuando se realiza una operación inválida, como dividir por .
Ejercicios resueltos - Números flotantes
1.
Convertir el siguiente número decimal a formato IEEE 754 de precisión simple: (normalizado).
Primero convertimos el número decimal a binario.
Tenemos que . Ahora identificamos los valores de .
- (es positivo)
Este número no tiene parte fraccionaria, por lo que el desplazamiento del punto es de
- (agregamos ceros para llegar a bits)
Finalmente, calculamos el valor de .
El número en formato IEEE 754 de precisión simple es .
2.
Convertir el siguiente número decimal a formato IEEE 754 de precisión simple: (normalizado).
Primero convertimos el número decimal a binario. Este número tiene parte entera y parte fraccionaria, por lo que se convierten por separado.
La mantisa debe tener bits, por lo que nos interesan los primeros bits para hacer el desplazamiento del punto.
Tenemos que . Ahora convertimos la parte fraccionaria.
- (es positivo)
El número . El desplazamiento del punto es de
Finalmente, calculamos el valor de .
El número en formato IEEE 754 de precisión simple es .