docoo
Representación en memoria
 <img_0.svg>
La representación en memorias físicas (salvo algunas máquinas que inicialmente trabajaban en base 10 y algún caso más ) se realiza en base 2. esto es así, porque es el sistema más simple de almacenamiento y eso repercute en costes y en simplicidad.

Limitación Física En memoria con una base de representación 2 se pueden representar $2^n$ elementos distintos siendo n el número de caracteres que podamos utilizar.

  1. Si queremos representar alfabeto esto se hace mediante un número natural positivo y una aplicación que indica que carácter se identifica con el.
    A esta aplicación se le conoce como códico ASCII que precisa 8 bit.
  2. Si queremos representar un número natural , no se puede por una limitación obvia , son infinitos, lo que se puede representar es $ \mathbb{Z}_{2^n} $ , con esto vamos a poder asociar números naturales a estos que coincidirán pero siempre y cuando no rebasemos $2^{n-1}$ en ese caso habrá , lo que se conoce como un desbordamiento. que en $ \mathbb{Z}_{2^n} $ tendrá sentido pero no en $ \mathbb{N} $
  3. Para representar números en $ \mathbb{Z} $ utilizaremos un criterio parecido a la representación de números en $ \mathbb{N} $ ya que las limitaciones son semejantes. solo que aquí el rango de representación sera $ [ - 2^{n-2}-1 .... 0 .... 2^{n-2}]$ este criterio es así porque tiene sus ventajas a la hora de operar con ellos . si no se especifica, estaremos haciendo referencia a uno de estos números, en el caso de querer hacer referencia a un número natural lo llamaremos unsigned o sin signo. para comprobar si un número $ \mathbb{Z} $ es negativo miraremos el primer carácter si es un 1 entonces es negativo.
  4. Para representar números en $ \mathbb{Q} $ tenemos otro problema más y es que no solo no podemos representar los infinitos números, ahora también nos enfrentamos a como representar números que se encuentran entre dos naturales consecutivos.

    Dos opciones:
    • Considerar elementos más pequeños en vez de trabajar con unidades con décimas o centésimas o milésimas salvando las distancias que estamos trabajando en base 2.
      De este modo conseguiremos ser capaz de hacer referencia a ciertos números a los cuales aproximar nuestros valores sin perder las cualidades de grupo que tienen los números $ \mathbb{Z} $ aunque sacrificando el rango de representación.
      A esto se le conoce como coma fija .
    • Utilizando la notación exponencial , este método también se conoce como punto flotante o coma flotante en este caso, el espacio de la información se divide en 2 por una parte para la mantisa y por la otra para el exponente, la base se asume como 2.

      De este modo se pueden representar valores decimales y valores muy grandes, ya que esto lo decide el exponente.

      Los valores van teniendo más precisión a medida que se acercan al 0 y esto que tiene como contra que pierde la estructura de grupo es muy práctico desde el punto de vista aplicado.

      En la imagen que encabeza este artículo se ve la representación de los posibles valores que puede tomar con 3 valores en la mantisa y 2 para ver el exponente, asi como 3 en la mantisa y 3 en el exponente y 4 en la mantisa y 2 en el exponente.
      En esta imagen se ve como aumenta la precisión por 2 al aumentar en un valor la mantisa, mientras que el recorrido o rango se dispara exponencialmente con aumentar el exponente, con este escenario parece necesario aumentar considerablemente más la mantisa que el exponente a medida que le reservemos más capacidad a cada número. concretamente en el caso de un double, que implica una reserva de memoria 64 bit el estandar IEEE establece 1 para el signo, 11 para el exponente y 52 para la mantisa.

      Los números flotantes no tienen signo en el exponente y eso se consigue trabajando con ellos como si todos los números fuesen mayores que 1 mientras que luego al representarse se establece la escala de otro modo. Así si tengo el numero $1.01010*2^{10} $ este número representa una unidad más 1 cuarto mientras que si tengo $1.0000*2^{01} $ esto seria un medio , esto lo realiza internamente el compilador.

      Existen ciertos números que no se pueden representar como el 0 pero esto se soluciona reservando algunos caracteres especiales para ellos.

      • $0$ el exponente la mantisa y el signo están a 0
      • $-0$ el exponente y la mantisa están a 0, mientras que el signo es 1.
        esta estupidez desde el punto de vista matemático, tiene sentido desde el punto de vista práctico o de ingienería.
      • $ +inf $ la mantisa esta ha 0 , el exponente a 1 y el signo a 0, se lee como infinito y surge cuando se rebasa el rango.
      • $ -inf $ la mantisa esta ha 0 , el exponente a 1 y el signo a 1, se lee como infinito y surge cuando se rebasa el rango.
      • $ NAN $ Se da cuando todos los exponentes están a 1, hay dos tipos:
        1. $QNAN$ Resultado de una operación matemática imposible
           sqrt(-2) 
        2. $SNAN$ Resultado de una operación con una variable mal iniciada.

      Un número es siempre igual a si mismo, si no es $NAN$.

      pd: en este método de representación cuando se hace en binario se omite la parte entera ya que como tiene que ser un número natural menor que 2 y distinto de 0, se entiende

--