Neste tutorial, aprenderemos sobre modificadores de tipo e como usá-los na programação C ++ com a ajuda de exemplos.
Na programação C ++, os modificadores de tipo são usados para alterar o significado dos tipos de dados fundamentais.
Existem quatro modificadores de tipo em C ++.
short
long
signed
unsigned
Aqui está um breve resumo:
Tipo de dados | Tamanho (em bytes) | Significado |
---|---|---|
signed int | 4 | usado para inteiros (equivalente a int ) |
unsigned int | 4 | só pode armazenar inteiros não negativos |
short | 2 | usado para números inteiros pequenos (intervalo -32768 a 32767 ) |
long | pelo menos 4 | usado para números inteiros grandes (equivalente a long int ) |
unsigned long | 4 | usado para números inteiros positivos grandes ou 0 (equivalente a unsigned long int ) |
long long | 8 | usado para números inteiros muito grandes (equivalente a long long int ). |
unsigned long long | 8 | usado para inteiros positivos muito grandes ou 0 (equivalente a unsigned long long int ) |
long double | 8 | usado para grandes números de ponto flutuante |
signed char | 1 | usado para caracteres (intervalo garantido -127 a 127 ) |
unsigned char | 1 | usado para caracteres (intervalo de 0 a 255 ) |
Modificador de tipo curto
Podemos usar short
para pequenos inteiros (na faixa −32,767
de +32,767
).
Por exemplo,
// small integer short a = 12345;
Aqui, a é uma short
variável inteira.
Nota: short
é equivalente a short int
.
Modificador de tipo longo
Se precisarmos armazenar um número inteiro grande (no intervalo de -2147483647 a 2147483647), podemos usar o especificador de tipo long
. Por exemplo,
// large integer long b = 123456;
Nota: long
é equivalente a long int
.
O modificador de tipo longo também pode ser usado com double
variáveis.
// large floating-point number long double c = 0.333333333333333333L;
Nota: Para indicar long double
, usamos o L
sufixo. Se não usarmos o sufixo L
, é um double
valor que é convertido para long double
(o que pode resultar em perda de dados).
longo longo
long
pode ser repetido duas vezes para criar o long long
tipo. Esse tipo é usado para números ainda maiores do que long
. long long
o modificador de tipo só pode ser usado com int
.
Por exemplo,
// long long int long long num = 12345678;
Modificadores assinados e não assinados
Variáveis com sinal podem conter inteiros positivos e negativos, incluindo zero . Por exemplo,
// positive valued integer signed int x = 23; // negative valued integer signed int y = -13; // zero-valued integer signed int z = 0;
Aqui,
- x contém um número inteiro de valor positivo
- y contém um número inteiro de valor negativo
- z contém um número inteiro de valor zero
Nota:
- Por padrão, os inteiros são
signed
. Portanto, em vez designed
int
, podemos usar diretamenteint
. signed
e unsigned só podem ser usados com os tipos int e char.
As variáveis sem sinal podem conter apenas valores inteiros não negativos. Por exemplo,
// positive valued integer unsigned int x = 2; unsigned int y = 0;
Aqui,
- x contém um número inteiro de valor positivo
- y tem zero
Em geral, uma int
variável pode armazenar uma faixa de valores de -2.147.483.648 a 2.147.483.647 . Enquanto uma unsigned in
variável t pode armazenar uma faixa de valores de 0 a 4.294.967.295 .
assinado, não assinado e char simples
C ++ tem 3 tipos diferentes: carvão animal char
, signed char
e unsigned char
. Na prática, existem basicamente apenas 2 tipos: signed char
e unsigned char
.
Isso ocorre porque, embora char
não seja igual signed char
ou unsigned char
no C ++ padrão, diferentes compiladores tratam char
como um signed char
ou de unsigned char
acordo com sua preferência.
Observação: quando usamos apenas em char
vez de signed char
ou unsigned char
, esse tipo é conhecido como char simples .
Como você deve ter adivinhado, signed char
pode armazenar inteiros positivos e negativos, enquanto unsigned char
só pode armazenar inteiros positivos (incluindo 0 ).
O intervalo garantido de valores inteiros que signed char
podem ser armazenados é de -127 a 127, enquanto o intervalo de unsigned char
é 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;
Aqui,
- plain_1 contém um número inteiro de valor positivo
- plain_2 contém um número inteiro de valor zero
- sin_1 contém um número inteiro de valor positivo
- sin_2 contém um número inteiro de valor zero
- sin_3 contém um número inteiro de valor negativo
- unsin_1 contém um número inteiro de valor negativo
- unsin_2 contém um inteiro com valor zero
Nota: É preferível não usar caracteres simples para realizar manipulações numéricas; Signed char ou unsigned char deve ser usado para isso. Plain char deve ser usado apenas para armazenar valores de caracteres.