prefacio
Aprender un idioma es aprender tipos de datos. Echemos un vistazo más profundo al rango de valores de los tipos de datos de C++.
texto
carbonizarse
-
Normalmente, si char se define como un tipo con signo, su rango de valores suele ser de -128 a 127 (o de -127 a 127 en algunas plataformas, según el compilador). Esto se debe a que el tipo char suele ocupar un byte (8 bits), uno de los cuales se utiliza para representar el bit de signo.
-
Si char se define como un tipo sin signo, su rango de valores suele ser de 0 a 255, porque el char sin signo no contiene números negativos.
corto
- Firmado breve (firmado breve):
Generalmente ocupa 2 bytes (16 bits).
Los valores suelen oscilar entre -32768 y 32767.
Uno de los bits se utiliza para representar el bit de signo, por lo que puede representar números negativos y no negativos.
Corto sin firmar (corto sin firmar):
- Normalmente también ocupa 2 bytes (16 bits).
El rango de valores suele ser de 0 a 65535.
Un corto sin firmar solo representa números no negativos.
Estos dos tipos de cortos tienen la misma capacidad de almacenamiento y ambos ocupan 2 bytes, pero debido a la diferente naturaleza de los símbolos, sus rangos de valores también son diferentes.
En t
- int con signo (int con signo):
Normalmente ocupa 4 bytes (32 bits).
Los valores suelen oscilar entre -2147483648 y 2147483647.
Uno de los bits se utiliza para representar el bit de signo, por lo que puede representar números negativos y no negativos.
- int sin firmar (int sin firmar):
Normalmente ocupa 4 bytes (32 bits).
Los valores suelen oscilar entre 0 y 4294967295.
Unsigned int solo representa números no negativos.
Estos dos tipos de int son iguales en capacidad de almacenamiento, ambos ocupan 4 bytes, pero debido a la diferente naturaleza de los símbolos, sus rangos de valores también son diferentes.
largo
- Firmado largo (firmado largo):
El rango de valores del tipo largo con signo suele depender del compilador y de la plataforma, pero suele ser al menos tan grande como el tipo int, normalmente de 4 u 8 bytes.
El rango de valores suele ser de -9223372036854775808 a 9223372036854775807 si tiene un tamaño de 8 bytes.
- largo sin firmar (largo sin firmar):
El rango de unsigned long también depende del compilador y de la plataforma, pero generalmente es al menos tan grande como unsigned int, generalmente de 4 u 8 bytes.
El rango de valores suele ser de 0 a 18446744073709551615, si el tamaño es de 8 bytes.
flotar
En C++, el rango de valores del tipo flotante generalmente sigue el estándar de números de punto flotante IEEE 754, que define las reglas para la representación y operación de números de punto flotante. El tipo flotante suele ocupar 4 bytes (32 bits) y su rango de valores es el siguiente:
Número normalizado positivo mínimo (número positivo más pequeño distinto de cero): aproximadamente 1.4013e-45
Número normalizado máximo: aproximadamente 3.4028e+38
El tipo flotante puede representar valores decimales y enteros, pero tenga en cuenta que su precisión es limitada porque solo hay 32 bits, por lo que puede haber pérdida de precisión al representar números muy grandes o muy pequeños. Los números de coma flotante también pueden tener errores de redondeo, especialmente cuando se hace aritmética de coma flotante.
doble
En C++, el rango de valores del tipo doble generalmente sigue el estándar de punto flotante IEEE 754, que define las reglas para la representación y operación de números de punto flotante. El tipo doble suele ocupar 8 bytes (64 bits) y su rango de valores es el siguiente:
Número mínimo de normalización positiva (número mínimo positivo distinto de cero): aproximadamente 4.9407e-324
Número máximo de normalización: aproximadamente 1.7977e+308
A diferencia del flotante, el tipo doble tiene mayor precisión, por lo que puede representar un rango más amplio y valores de mayor precisión. Esto hace que el tipo doble se utilice ampliamente en informática científica, ingeniería y otros campos que requieren números de alta precisión.