En este tutorial, aprenderemos sobre modificadores de tipo y cómo usarlos en la programación C ++ con la ayuda de ejemplos.
En la programación C ++, los modificadores de tipo se utilizan para cambiar el significado de los tipos de datos fundamentales.
Hay cuatro modificadores de tipo en C ++.
short
long
signed
unsigned
He aquí un breve resumen:
Tipo de datos | Tamaño (en bytes) | Sentido |
---|---|---|
signed int | 4 | usado para enteros (equivalente a int ) |
unsigned int | 4 | solo puede almacenar enteros no negativos |
short | 2 | utilizado para números enteros pequeños (rango -32768 a 32767 ) |
long | al menos 4 | utilizado para enteros grandes (equivalente a long int ) |
unsigned long | 4 | utilizado para números enteros positivos grandes o 0 (equivalente a unsigned long int ) |
long long | 8 | utilizado para enteros muy grandes (equivalente a long long int ). |
unsigned long long | 8 | utilizado para enteros positivos muy grandes o 0 (equivalente a unsigned long long int ) |
long double | 8 | utilizado para grandes números de coma flotante |
signed char | 1 | utilizado para caracteres (rango garantizado de -127 a 127 ) |
unsigned char | 1 | utilizado para caracteres (rango 0 a 255 ) |
Modificador de tipo corto
Podemos usar short
para números enteros pequeños (en el rango −32,767
de +32,767
).
Por ejemplo,
// small integer short a = 12345;
Aquí, a es una short
variable entera.
Nota: short
es equivalente a short int
.
Modificador de tipo largo
Si necesitamos almacenar un entero grande (en el rango de -2147483647 a 2147483647), podemos usar el especificador de tipo long
. Por ejemplo,
// large integer long b = 123456;
Nota: long
es equivalente a long int
.
El modificador de tipo largo también se puede utilizar con double
variables.
// large floating-point number long double c = 0.333333333333333333L;
Nota: Para indicar long double
, usamos el L
sufijo. Si no usamos el sufijo L
, es un double
valor al que se convierte long double
(lo que puede resultar en la pérdida de datos).
largo largo
long
se puede repetir dos veces para crear el long long
tipo. Este tipo se utiliza para números aún mayores que long
. long long
El modificador de tipo solo se puede usar con int
.
Por ejemplo,
// long long int long long num = 12345678;
Modificadores firmados y no firmados
Las variables con signo pueden contener enteros tanto positivos como negativos, incluido el cero . Por ejemplo,
// positive valued integer signed int x = 23; // negative valued integer signed int y = -13; // zero-valued integer signed int z = 0;
Aquí,
- x tiene un número entero de valor positivo
- y tiene un número entero con valor negativo
- z contiene un número entero de valor cero
Nota:
- Por defecto, los enteros son
signed
. Por lo tanto, en lugar designed
int
, podemos usar directamenteint
. signed
y unsigned solo se puede usar con tipos int y char.
Las variables sin signo solo pueden contener valores enteros no negativos. Por ejemplo,
// positive valued integer unsigned int x = 2; unsigned int y = 0;
Aquí,
- x tiene un número entero de valor positivo
- y tiene cero
En general, una int
variable puede almacenar un rango de valores de -2,147,483,648 a 2,147,483,647 . Considerando que, una unsigned in
variable t puede almacenar un rango de valores de 0 a 4,294,967,295 .
carácter firmado, sin firmar y sencillo
C ++ tiene 3 tipos de char diferentes: char
, signed char
y unsigned char
. En la práctica, existen básicamente solo 2 tipos: signed char
y unsigned char
.
Esto se debe a que, aunque char
no es lo mismo que signed char
o unsigned char
en C ++ estándar, los diferentes compiladores tratan char
como cualquiera signed char
o unsigned char
según sus propias preferencias.
Nota: Cuando solo usamos en char
lugar de signed char
o unsigned char
, este tipo se conoce como char simple .
Como habrás adivinado, signed char
puede almacenar enteros positivos y negativos, mientras unsigned char
que solo puede almacenar enteros positivos (incluido el 0 ).
El rango garantizado de valores enteros que se signed char
pueden almacenar es de -127 a 127, mientras que el rango de unsigned char
es de 0 a 255 .
// plain char char plain_1 = 65; char plain_2 = 0; // plain char with negative value // might cause problems with some compilers char plain_3 = -56; // signed char signed char sin_1 = 12; signed char sin_2 = 0; signed char sin_3 = -12; // unsigned char unsigned char unsin_1 = -85; unsigned char unsin_2 = 0;
Aquí,
- plain_1 contiene un número entero con valor positivo
- plain_2 contiene un número entero de valor cero
- sin_1 contiene un número entero con valor positivo
- sin_2 contiene un número entero de valor cero
- sin_3 contiene un número entero con valor negativo
- unsin_1 contiene un número entero con valor negativo
- unsin_2 contiene un número entero de valor cero
Nota: Es preferible no utilizar caracteres simples para realizar manipulaciones numéricas; En su lugar, se deben usar caracteres firmados o sin firmar. El carácter simple solo debe usarse para almacenar valores de caracteres.