Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Tipos de Dados Numéricos | Variáveis e Tipos de Dados
Introdução ao C++
course content

Conteúdo do Curso

Introdução ao C++

Introdução ao C++

1. Primeiros Passos
2. Variáveis e Tipos de Dados
3. Introdução Aos Operadores
4. Introdução a fluxo de programa
5. Introdução a Funções

bookTipos de Dados Numéricos

Números inteiros

Os tipos de dados inteiros são os mais comumente usados para números inteiros. O tipo de dado int pode armazenar valores dentro do intervalo de -2147483648 a 2147483647.

cpp

main

copy
12345678910
#include <iostream> int main() { int goodNumber = 12; int tooLarge = 2147483648; std::cout << "Printing tooLarge: " << tooLarge << std::endl; std::cout << "Printing goodNumber: " << goodNumber << std::endl; }

Isso acontece porque quando você declara uma variável int, ela aloca exatamente 4 bytes de memória do seu PC. E números acima de 2147483647(ou abaixo de -2147483648) não cabem dentro desses 4 bytes. Felizmente, existem outros tipos de dados disponíveis que podem alocar mais (ou menos) espaço conforme suas necessidades. Aqui está a tabela:

Tipo de dado
Intervalo
Tamanho
short
-32768 a 32767
2 bytes
int
-2147483648 a 2147483647
4 bytes
long
-9223372036854775808 a 9223372036854775807
8 bytes

Você pode usar long para armazenar números grandes (por exemplo, a população mundial). Também é possível utilizar short se você estiver certo de que o seu número não excederá o intervalo de -32768 a 32767 (por exemplo, para armazenar a idade de um usuário). Usar short ocupará menos espaço.

cpp

main

copy
123456789101112
#include <iostream> int main() { short age = 22; int likes = 143200; long population = 7900000000; std::cout << "Age: " << age << std::endl; std::cout << "Likes: " << likes << std::endl; std::cout << "World's population: " << population << std::endl; }

Nota

Tenha cuidado com o tipo de dado que você escolhe. Se o intervalo de um tipo for excedido, o compilador de C++ não irá avisar você sobre isso, e você obterá um valor inesperado sem saber que algo está errado.

Números de ponto flutuante

Os tipos de dados mencionados anteriormente são projetados para armazenar números inteiros. Se tentássemos atribuir 1.6 a um deles, aqui está o que obteríamos:

cpp

main

copy
1234567
#include <iostream> int main() { int num = 1.6; std::cout << num << std::endl; }

O tipo int ignora a parte decimal de um número. O mesmo acontece com short ou long. Para armazenar números de ponto flutuante (decimais), devemos usar o tipo de dado float ou double.

Tipo de dadoPrecisãoTamanho
float7 dígitos decimais4 bytes
double15 dígitos decimais8 bytes

Aqui está um exemplo de utilização do tipo double para armazenar 1.6.

cpp

main

copy
1234567
#include <iostream> int main() { double num = 1.6; std::cout << num << std::endl; }

Já que o tipo float possui apenas uma precisão de 7 dígitos, o número 123.456789 já está fora do seu alcance. Isso pode levar a resultados imprecisos (como mostrado no exemplo abaixo). Portanto, é melhor usar double por padrão a menos que você esteja seguro de que a precisão de float é suficiente.

cpp

main

copy
12345678910
#include <iostream> int main() { float floatNum = 123.45678; double doubleNum = 123.45678; std::cout << "using float:" << floatNum - 123 << std::endl; std::cout << "using double:" << doubleNum - 123 << std::endl; }

Obviamente, você pode usar float ou double para armazenar números inteiros, já que esses são números decimais com parte decimal igual a 0. No entanto, como uma boa prática, se uma variável armazena valores que só podem ser números inteiros (por exemplo, população ou curtidas), deve-se usar short/int/long.

cpp

main

copy
1234567
#include <iostream> int main() { float price = 100; std::cout << "Price is: " << price << std::endl;; }
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 3
some-alt