<aside>

Conhecimentos necessários:

Variáveis, entrada e saída de dados, estruturas condicionais e estruturas repetitivas

Potenciação

</aside>

<aside>

Navegação

</aside>

Bom… lembra dos tipos de dados que mencionei anteriormente (int, float, double e char)? Eles não são todos os tipos…

Tipos de dados

Básicos

Complexos

Para as variáveis do tipo int e double, podemos dar uma tunada nelas, deixando elas mais leves ou grandes e poderosas… que seriam os…

Modificadores de tipos e memória

Basicamente, existem 4:

Cada variável possui um peso em bytes, que é a medida de memória do computador. Cada variável possui seus limites, números máximos que mínimos que elas suportam guardar. Dito isso, unsigned faz a variável não conseguir armazenar números negativos, mas pode armazenar números positivos maiores. Já o long, faz a variável conseguir armazenar números maiores, mas ela fica mais pesada. E o short é o oposto, faz a variável conseguir armazenar números não tão grandes com o objetivo de ficar mais leve.

Esse modificadores só se aplicam para o tipo int, tirando o long, que também se aplica para o double.

O peso de cada variável pode variar dependendo do sistema. Por isso, aqui há duas tabelas:

Sistemas 32 bits:

Tipo de variável Peso (bytes) Valor mínimo Valor máximo Precisão decimal
void 0 Não existe Não existe Não existe
char 1 Não existe Não existe Não existe
short int 2 -32.768 32.767 Não existe
int 4 -2.147.483.648 2.147.483.647 Não existe
unsigned int 4 0 4.294.967.295 Não existe
long int 4 -2.147.483.648 2.147.483.647 Não existe
unsigned long int 4 0 4.294.967.295 Não existe
long long int 8 -9.223.372.036.854.775.808 9.223.372.036.854.775.807 Não existe
unsigned long long int 8 0 18.446.744.073.709.551.615 Não existe
float 4 $\approx 2^{-126}$ $\approx 2^{126} -1$ $\approx 7$ dígitos
double 8 $\approx 2^{-1022}$ $\approx 2^{1022} - 1$ $\approx 15$ dígitos
long double 8 $\approx 2^{-1022}$ $\approx 2^{1022} - 1$ $\approx 15$ dígitos

Sistemas 64 bits:

Tipo de variável Peso (bytes) Valor mínimo Valor máximo Precisão decimal
void 0 Não existe Não existe Não existe
char 1 Não existe Não existe Não existe
short int 2 -32.768 32.767 Não existe
int 4 -2.147.483.648 2.147.483.647 Não existe
unsigned int 4 0 4.294.967.295 Não existe
long int 8 -9.223.372.036.854.775.808 9.223.372.036.854.775.807 Não existe
unsigned long int 8 0 18.446.744.073.709.551.615 Não existe
long long int 8 -9.223.372.036.854.775.808 9.223.372.036.854.775.807 Não existe
unsigned long long int 8 0 18.446.744.073.709.551.615 Não existe
float 4 $\approx 2^{-126}$ $\approx 2^{126} -1$ $\approx 7$ dígitos
double 8 $\approx 2^{-1022}$ $\approx 2^{1022} - 1$ $\approx 15$ dígitos
long double 16 $\approx 2^{-16382}$ $\approx 2^{16382} - 1$ $\approx 18$ dígitos

Se, por algum motivo, você tentar colocar um número maior do que a variável suporta, ela dará o que chamamos de overflow e guardará, tecnicamente, infinito (ou um valor negativo) como valor.

Caso queira medir o tamanho de alguma coisa, você pode usar a função sizeof(). Dessa forma:

sizeof(int) mede o tamanho de um int.

sizeof(char) mede o tamanho de um char.

Obs.: long double pode não ser compatível com todos os compiladores.

Memória RAM

A memória RAM é separada em 3 partes: Heap, Stack e Kernel Space.

Heap

É o pedaço da memória que programas usam. Se um programa precisar de 1 GB de RAM, por exemplo, ele usaria memória desse heap.

Stack

É onde as variáveis que criamos normalmente ficam salvas, além de outras coisas simples para o funcionamento do programa, como a contagem de linhas. Representa um espaço bem pequeno da memória, cerca de 1 MB a 8 MB.

Kernel Space

É a parte da memória que é reservada para o sistema, apenas. Nenhum outro programa consegue usar. No máximo, conseguem visualizar.

Conversão de medidas

Nome da unidade Peso Sigla
Bit (binary digit) Um dígito do código binário b
Byte 8 bits B
Kilobyte 1024 B KB
Megabyte 1024 KB MB
Gigabyte 1024 MB GB
Terabyte 1024 GB TB
Petabyte 1024 TB PB

Especificadores de formatos

Integrais

| --- | --- | --- |

Reais

| --- | --- | --- |