InicioInfoRepresentación de números en un ordenador

Representación de números en un ordenador

Info7/23/2017


Hola amigos de Taringa!, este es mi primer post, hoy vengo a traerles información sobre como se codifican los números (enteros) en un ordenador.


Índice

  • 1. Sistema binario
  • 2. Algoritmos para cambio de base
  • 3. Aritmética en base foránea
  • 4. Representación de números en un ordenador


1. Sistema binario


El sistema binario, llamado también base 2, es un sistema de numeración en el que los números se representan utilizando solamente dos cifras: cero y uno (0 y 1). Es uno de los sistemas que se utilizan en las computadoras, debido a que estas trabajan internamente con dos niveles de voltaje, por lo cual su sistema de numeración natural es el sistema binario.

El sistema binario moderno fue documentado en su totalidad por Leibniz, en el siglo XVII, en su artículo "Explication de l'Arithmétique Binaire". Leibniz utilizó el 0 y el 1, al igual que el sistema de numeración binario actual.

El sistema binario es un sistema de numeración en el cual se utiliza la notación posicional (al igual que en el base 10), esto quiere decir que, cada dígito posee un valor que depende de su posición relativa, dicho valor esta determinado por la base, que es el número de dígitos necesarios para escribir cualquier número. Ahora, nada mejor que un ejemplo para entender mejor lo anterior:


El número "quinientos cuarenta y dos y una décima" esta compuesto de: cinco centenas, cuatro decenas, dos unidades y una décima. Cada cifra de este número posee un valor que depende de su posición con respecto al punto decimal, como se puede apreciar en la imagen anterior. Del lado izquierdo del punto decimal, el exponente de la base toma valores a partir de cero hacia delante de forma creciente, dado que la primera posición ocupa el lugar de las unidades (diez elevado a la cero es igual a uno), pero del lado derecho del punto decimal, el exponente toma valores a partir de menos uno hacia delante de forma decreciente, dado que las posiciones a la derecha del punto decimal ocupan lugares que representa valores fraccionarios (menores a la unidad).

El anterior número mostrado como ejemplo, es de 4 dígitos decimales, también se dice que es de 4 decimales, ya que en su representación se están utilizando 4 cifras del sistema decimal. En el caso de un número en base 2, como lo es: 1010 es de cuatro dígitos binarios. En ingles, dígito binario se escribe como: "binary digit", así es, bit. Por lo tanto, 1010 es un número de 4 bits.



2. Algoritmos para cambio de base

Lo anterior explicado, es la base de cualquier sistema de numeración posicional, es decir, es la misma lógica. De hecho existen infinitos sistemas de numeración posicionales, los mas conocidos en la informática son: el binario (base 2), el octal (base 8), el decimal (base 10) y el hexadecimal (base 16). Los sistemas de numeración cuya base es menor a 10, usan los dígitos del sistema decimal que sean necesarios. Cuando la base es mayor a diez (ejemplo: sistema hexadecimal), se utilizan las letras del abecedario necesarias. Además de lo anterior, todos los números escritos en una base distinta a la decimal, llevan como subíndice el número de la base (codificado en decimal) encerrado entre paréntesis.

De base foránea a base decimal

Con la información expuesta en el punto anterior y al inicio de este, se puede ver que el algoritmo para decodificar un número codificado en una determinada base, consiste en descomponer el número como se muestra en la imagen del ejemplo del punto anterior, pero en vez de trabajar con potencias de diez, se trabaja con potencias de dos, o de ocho, o de dieciséis, o cualquier otra. Ahora veamos un ejemplo:



De base decimal a base foránea

Lo anterior es para convertir de una base foránea a base 10, pero para realizar el proceso inverso es necesario entender lo siguiente: multiplicar por diez en base 10 implica desplazar el punto decimal hacia la derecha, mientras que dividir entre diez implica desplazar el punto hacia la izquierda. En base 2, multiplicar por dos implica desplazar el punto decimal hacia la derecha, mientras que dividir entre dos implica desplazar el punto hacia la izquierda. La idea anterior se extrapola para cualquier base en notación posicional.

Si se realiza la división euclídea sobre un número en base 10 como dividiendo y diez como divisor, se obtendrá un residuo que corresponderá a la primera cifra en base decimal menos significativa, y si el cociente se continua dividiendo hasta llegar a tener un cociente de cero, se obtendrán el resto de las cifras decimales en el orden de menos significativas a más significativas. Veamos un ejemplo:


Reescribiendo las cifras obtenidas como residuo, desde la última hasta la primera, obtendríamos codificado en decimal el número "mil novecientos ochenta y dos", esto es porque el divisor fue el número diez. Si el divisor hubiera sido el número dos, entonces el resultado final habría estado codificado en base 2. Ejemplo:


Si el divisor hubiera sido el número dieciséis, entonces el resultado final habría estado codificado en base 16 (los residuos mayores a 9 tendrían que ser reemplazos por letras; un residuo de diez se reemplazaría por la letra 'A', un residuo de once por la letra 'B', y así sucesivamente hasta el 15, el cual debería de ser reemplazado por la letra 'F'). Aquí otro ejemplo de como se aplica este algoritmo sobre el número veinticinco:


Números racionales en base decimal a base foránea

Primero veremos como convertir un número menor a la unidad, es decir, un número fraccionario (una fracción propia). Tomando como ejemplo el número: 0.2901, si multiplicamos por diez dicho número, obtendremos la primera cifra decimal más significativa (la parte entera del producto); la correspondiente a las décimas (dicha cifra es el dos). Si al resultado: 2.901 se le resta el número dos y el nuevo resultado se vuelve a multiplicar por diez obtendremos la segunda cifra decimal menos significativa; la correspondiente a las centésimas (dicha cifra es el nueve). Si lo anterior se repite hasta obtener en el paso de la multiplicación un producto entero (un número sin parte decimal) se habrán obtenido todas las cifras que conforman al número decimal en base 10; la primera cifra obtenida es la más significativa, por lo que las cifras deben ser reescritas desde la primera hasta la última obtenida. Lo anterior es porque multiplicamos por diez. Si se hubiera multiplicado por dos, entonces el resultado estaría codificado en base 2. Ahora veamos un ejemplo para que lo anterior quede más claro:


Si el multiplicador hubiera sido el número dos, entonces el resultado final habría estado codificado en base 2. Ejemplo:


Existen números racionales en base 10 que en otra base no tienen una cantidad finita de cifras después del punto que realiza la separación entre la parte entera y la parte fraccionaria del número; son números periódicos. En el ejemplo anterior, se procedió a calcular las primeras nueva cifras (después del punto fraccionario) binarias del número "dos mil novecientos una diezmilésimas" para redondear a 8 bits a la derecha del punto.

Si el número a convertir es un entero con parte fraccionaria, primero se convierte la parte entera y luego la parte fraccionaria.


3. Aritmética en base foránea

La realización de operaciones matemáticas con números codificados en otra base distinta a la decimal no cambia. La diferencia radica en la realización de la suma y la resta (operaciones que se realizan en la multiplicación y en la división respectivamente).

La razón por la que cambia la realización de las operaciones anteriormente descritas es porque al trabajarse en una base distinta a la decimal cambia la cantidad de unidades necesarias para completar una unidad del siguiente orden. Lo anterior queda más claro con un ejemplo:


De derecha a izquierda, cero más uno es igual a uno. En la segunda columna, dos más dos (la segunda columna tiene un "peso" de dos unidades) es igual a cuatro, con lo cual se tiene dos unidades del segundo orden (cuatro unidades) y a la vez se completa una unidad del siguiente orden (cuyo peso es de cuatro unidades). En otras palabras, al sumar 1 + 1 es 10(2) (dos en binario), es decir, llevamos 1 a la siguiente posición de la izquierda (acarreo). Esto es equivalente en el sistema decimal a sumar 9 + 1, que da 10; cero en la posición que estamos sumando y un 1 de acarreo a la siguiente posición. Un acarreo de 1 en el sistema decimal indica que se completo 10 unidades del orden anterior; en el sistema binario el mismo acarreo indica que se completo 2 unidades del orden anterior.

Con la resta sucede exactamente lo mismo; La resta 0 - 1 se resuelve igual que en el sistema decimal, tomando una unidad prestada de la posición siguiente: 0 - 1 = 1 y me llevo 1 (este valor se resta al resultado que obtenga, entre el minuendo y el sustraendo de la siguiente columna), lo que equivale a decir en el sistema decimal, 2 - 1 = 1.


4. Representación de números en un ordenador

La representación de números naturales (enteros positivo, incluido el cero) en memoria es sencillo. Dado que la memoria se divide en "trozos" de un byte de longitud 8 bits. Estos bits pueden estar en dos estados distintos; encendidos (1) o apagados (0). En memoria, el número (en base 2) 0001·1011 (el punto ayuda a leer en grupos de 4 bits) se almacena como tal. Pero ¿y qué pasa con los números negativos? Para almacenar números negativos se trabaja con el complemento a dos, el cual ademas de ayudarnos a trabajar con números negativos nos permite realizar la resta como una suma.

El complemento a dos de un número N se obtiene invirtiendo los "estados" de sus bits y al resultado sumarle 1. Esto dará como resultado que todos los números en binario que represente un número negativo tengan el bit más significativo (el más a la izquierda) en 1. Ejemplo:

N: Número
~N: Negación de N (N con sus bits invertidos)
C2(N): Complemento a 2 de N

N = 0000·1010; ~N = 1111·0101; C2(N) = 1111·0110;

Si se quiere realizar una diferencia entre 29 y 27 (27 con restando), primero se tiene que convertir el 29 a binario al igual que el 27. Como segundo paso, como el 27 estará restado debe pasarse a complemento a 2. Una vez hecho lo anterior se realiza la suma binaria (si, la resta "desaparece" ) y se obtendrá el resultado.

El resultado de la operación anterior da dos, pero si hubiera sido 27 menos 29 hubiera dado dos pero el resultado hubiera estado en complemento a dos, se sabría que es un número negativo porque el bit más significativo estaría en 1, por lo que seria necesario revertir el complemento a dos para saber el valor absoluto (ya sabríamos que es negativo) del resultado. Para revertir el complemento a 2 de un número solo es necesario estar 1 al número en cuestión e invertir sus bits.

Intervalos

Al necesitar números positivos para representar valores negativos se "pierden" números positivos y negativos a poder representar. Con la siguiente expresión se puede conocer cual es el intervalo de los números a poder representar con n bits:


Algunos intervalos comunes

  • Entero sin signo de 8 bits (0 a 255)
  • Entero con signo de 16 bits (-32768 a +32767)
  • Entero con signo de 32 bits (-2,147,483,648 a +2,147,483,647)
  • Entero sin signo de 64 bits (0 a ~1.8447E+19)

Hace falta la representación de números enteros con parte fraccionaria, pero eso sera en otro post. Hasta aquí este, y espero haberme explicado bien. Recuerden que es mi primer post Info. Hasta la próxima.


Bit
Datos archivados del Taringa! original
57puntos
385visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
4visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

a
acipriani68🇦🇷
Usuario
Puntos0
Posts4
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.