logo

Tipos integrales extendidos (elegir el tamaño entero correcto en C/C++)

C/C++ tiene definiciones muy vagas sobre sus tipos de datos enteros básicos (char short int long y long long). El lenguaje garantiza que pueden representar al menos algún rango de valores, pero cualquier plataforma en particular (hardware del sistema operativo del compilador) puede ser mayor que eso.
Un buen ejemplo es largo. En una máquina, podrían ser 32 bits (el mínimo requerido por C). En otro son 64 bits. ¿Qué haces si quieres un tipo de número entero que tenga exactamente 32 bits de longitud? Ahí es donde entra en juego int32_t: es un alias para cualquier tipo de entero que tenga su sistema particular y que sea exactamente de 32 bits.
Plantilla: 
 

unión de cadenas java
  intN_t or uintN_t   Where N is width of integer which can be 8 16 32 64 or any other type width supported by the library.


 



CPP
// C++ program to show use of extended integral types #include    using namespace std; int main() {  uint8_t i; // i with width of exact 8 bits  // Minimum value represented by unsigned 8 bit is 0  i = 0;  cout << "Minimum value of it: "<< (int)i << endl;  // Maximum value represented by unsigned 8 bit is 255  i = 255;  cout << "Maximum value of it: "<< (int)i << endl;  // Warning: large integer implicitly truncated to  // unsigned type. It will print any garbage value  i = 2436;  cout << "Beyond range value of it: " << (int)i << endl;  return 0; } 

Producción: 
 

 In function 'int main()': 19:7:   warning  : large integer implicitly truncated to unsigned type [-overflow] i = 2436; ^ Minimum value of i : 0 Maximum value of i : 255 Beyond range value of i : 132


Diferentes variaciones  
1. Entero de 8 bits sin signo de ancho fijo: uint8_t  
Significa darme un int sin signo de exactamente 8 bits.
2. Entero de 8 bits sin signo de ancho mínimo: uint_least8_t  
Significa darme el tipo más pequeño de int sin signo que tenga al menos 8 bits. Optimizado para el consumo de memoria.
3. Entero de 8 bits sin signo de ancho mínimo más rápido: uint_fast8_t  
Significa darme un int sin signo de al menos 8 bits lo que hará que mi programa sea más rápido. Puede elegir un tipo de datos más grande debido a consideraciones de alineación. Optimizado para la velocidad.
Por lo tanto, se garantiza que un uint8_t tendrá exactamente 8 bits de ancho. Un uint_least8_t es el entero más pequeño garantizado con al menos 8 bits de ancho. Un uint_fast8_t es el entero más rápido garantizado con al menos 8 bits de ancho. 
Entonces los tipos integrales extendidos nos ayudan a escribir. portátil y eficiente código.
 

cuantos años tiene kylie jenner