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

bookTipos de Dados Numéricos

Números inteiros

Os tipos de dados inteiros são os mais utilizados para números inteiros. O tipo de dado int pode armazenar valores no intervalo de -2,147,483,648 a 2,147,483,647.

main.cpp

main.cpp

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

Isso ocorre porque, ao declarar uma variável int, são alocados exatamente 4 bytes da memória do seu computador. E números acima de 2147483647 (ou abaixo de -2147483648) não cabem nesses 4 bytes. Felizmente, existem outros tipos de dados disponíveis que podem alocar mais (ou menos) espaço conforme necessário. Aqui está a tabela:

Portanto, é possível utilizar long para armazenar números grandes (por exemplo, a população mundial). Também é possível utilizar short se houver certeza de que o número não excederá o intervalo de -32,768 a 32,767 (por exemplo, ao armazenar a idade de um usuário). O uso de short ocupará menos espaço de memória.

main.cpp

main.cpp

copy
12345678910111213
#include <iostream> int main() { short age = 22; // for small numbers int likes = 143200; // for larger numbers long population = 8200000000; // for very large numbers // Display the values std::cout << "Age: " << age << std::endl; std::cout << "Likes: " << likes << std::endl; std::cout << "World's population: " << population << std::endl; }
Note
Nota

Tenha cuidado ao selecionar o tipo de dado. Se o intervalo de um tipo for excedido, o compilador C++ não irá notificá-lo, e um valor inesperado poderá ser recebido sem qualquer indicação de erro.

Números de ponto flutuante

Os tipos de dados acima são projetados para armazenar números inteiros. Se tentarmos atribuir 1.6 a um deles, este será o resultado:

main.cpp

main.cpp

copy
12345678
#include <iostream> int main() { // Change the data type to `float` o `double` int num = 1.6; std::cout << num << std::endl; }

O tipo int trunca a parte decimal de um número. Esse comportamento é o mesmo para os tipos short e long. Para armazenar números de ponto flutuante (decimais), deve-se utilizar os tipos de dados float ou double.

Aqui está um exemplo de uso de double para armazenar 1.6.

main.cpp

main.cpp

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; }
Note
Nota

Como o tipo float possui apenas precisão de sete dígitos, o número 123.456789 já está fora do seu alcance. Isso pode levar a resultados imprecisos (conforme mostrado no exemplo abaixo). Portanto, é melhor utilizar double por padrão, a menos que tenha certeza de que a precisão de float é suficiente.

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

question mark

O que acontece se você tentar atribuir um número maior que 2,147,483,647 a uma variável do tipo int?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Awesome!

Completion rate improved to 3.85

bookTipos de Dados Numéricos

Deslize para mostrar o menu

Números inteiros

Os tipos de dados inteiros são os mais utilizados para números inteiros. O tipo de dado int pode armazenar valores no intervalo de -2,147,483,648 a 2,147,483,647.

main.cpp

main.cpp

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

Isso ocorre porque, ao declarar uma variável int, são alocados exatamente 4 bytes da memória do seu computador. E números acima de 2147483647 (ou abaixo de -2147483648) não cabem nesses 4 bytes. Felizmente, existem outros tipos de dados disponíveis que podem alocar mais (ou menos) espaço conforme necessário. Aqui está a tabela:

Portanto, é possível utilizar long para armazenar números grandes (por exemplo, a população mundial). Também é possível utilizar short se houver certeza de que o número não excederá o intervalo de -32,768 a 32,767 (por exemplo, ao armazenar a idade de um usuário). O uso de short ocupará menos espaço de memória.

main.cpp

main.cpp

copy
12345678910111213
#include <iostream> int main() { short age = 22; // for small numbers int likes = 143200; // for larger numbers long population = 8200000000; // for very large numbers // Display the values std::cout << "Age: " << age << std::endl; std::cout << "Likes: " << likes << std::endl; std::cout << "World's population: " << population << std::endl; }
Note
Nota

Tenha cuidado ao selecionar o tipo de dado. Se o intervalo de um tipo for excedido, o compilador C++ não irá notificá-lo, e um valor inesperado poderá ser recebido sem qualquer indicação de erro.

Números de ponto flutuante

Os tipos de dados acima são projetados para armazenar números inteiros. Se tentarmos atribuir 1.6 a um deles, este será o resultado:

main.cpp

main.cpp

copy
12345678
#include <iostream> int main() { // Change the data type to `float` o `double` int num = 1.6; std::cout << num << std::endl; }

O tipo int trunca a parte decimal de um número. Esse comportamento é o mesmo para os tipos short e long. Para armazenar números de ponto flutuante (decimais), deve-se utilizar os tipos de dados float ou double.

Aqui está um exemplo de uso de double para armazenar 1.6.

main.cpp

main.cpp

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; }
Note
Nota

Como o tipo float possui apenas precisão de sete dígitos, o número 123.456789 já está fora do seu alcance. Isso pode levar a resultados imprecisos (conforme mostrado no exemplo abaixo). Portanto, é melhor utilizar double por padrão, a menos que tenha certeza de que a precisão de float é suficiente.

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

question mark

O que acontece se você tentar atribuir um número maior que 2,147,483,647 a uma variável do tipo int?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

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