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 ++.
shortlongsignedunsigned
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 shortpara pequenos inteiros (na faixa −32,767de +32,767).
Por exemplo,
// small integer short a = 12345;
Aqui, a é uma shortvariá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 doublevariáveis.
// large floating-point number long double c = 0.333333333333333333L;
Nota: Para indicar long double, usamos o Lsufixo. Se não usarmos o sufixo L, é um doublevalor que é convertido para long double(o que pode resultar em perda de dados).
longo longo
longpode ser repetido duas vezes para criar o long longtipo. Esse tipo é usado para números ainda maiores do que long. long longo 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 designedint, podemos usar diretamenteint. signede 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 intvariável pode armazenar uma faixa de valores de -2.147.483.648 a 2.147.483.647 . Enquanto uma unsigned invariá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 chare unsigned char. Na prática, existem basicamente apenas 2 tipos: signed chare unsigned char.
Isso ocorre porque, embora charnão seja igual signed charou unsigned charno C ++ padrão, diferentes compiladores tratam charcomo um signed charou de unsigned characordo com sua preferência.
Observação: quando usamos apenas em charvez de signed charou unsigned char, esse tipo é conhecido como char simples .
Como você deve ter adivinhado, signed charpode armazenar inteiros positivos e negativos, enquanto unsigned charsó pode armazenar inteiros positivos (incluindo 0 ).
O intervalo garantido de valores inteiros que signed charpodem 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.








