Herramientas de usuario

Herramientas del sitio


tipos

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
tipos [2019/03/14 12:56] – [Tipos enteros con signo] lmateutipos [2020/03/17 23:38] (actual) – [Inferencia de tipos] lmateu
Línea 56: Línea 56:
   * En la plataforma Windows de 64 bits, el tipo long es de 32 bits (no es de 64 bits como en Unix).   * En la plataforma Windows de 64 bits, el tipo long es de 32 bits (no es de 64 bits como en Unix).
   * A partir del estandar C99 existe el tipo long long.  Se especifica que debe ser de al menos 8 bytes.   * A partir del estandar C99 existe el tipo long long.  Se especifica que debe ser de al menos 8 bytes.
-  * Observe que aún cuando los procesadores de PCs y smartphones son de 64 bits, la mayoría de los smartphones funcionan en modo 32 bits a menos que tengan al menos 4 GB de memoria RAM.+  * Observe que aún cuando los procesadores de PCs y smartphones son de 64 bits, la mayoría de los smartphones funcionan en modo 32 bitsno ser que tengan al menos 4 GB de memoria RAM.
   * Tampoco se fabrican PCs de 16 bits, pero se venden muchos procesadores para sistemas embebidos que son de 16 bits, con precios insignificantes al lado de sus hermanos de 32 o 64 bits.  Por razones de costos nadie colocaría un procesador de 32 o 64 bits para controlar una lavadora.   * Tampoco se fabrican PCs de 16 bits, pero se venden muchos procesadores para sistemas embebidos que son de 16 bits, con precios insignificantes al lado de sus hermanos de 32 o 64 bits.  Por razones de costos nadie colocaría un procesador de 32 o 64 bits para controlar una lavadora.
  
Línea 197: Línea 197:
   double x= (double)(a+1);   double x= (double)(a+1);
      
-Por lo tanto //a+1// se realiza en 32 bits con signo.  El resultado en binario es un 1 seguido de 31 ceros, que corresponde al valor entero -2147483648.+Por lo tanto //a+1// se realiza en 32 bits con signo.  El resultado en binario es un 1 seguido de 31 ceros, que corresponde al valor entero -2147483648.  Ese es el valor incorrecto que queda almacenado finalmente en x.  Y no 2147483648 como debería ser.
  
 **Ejercicio**: Reescriba la instrucción de asignación cambiando todas las conversiones implícitas a conversiones explícitas. **Ejercicio**: Reescriba la instrucción de asignación cambiando todas las conversiones implícitas a conversiones explícitas.
tipos.1552568208.txt.gz · Última modificación: 2019/03/14 12:56 por lmateu