Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpPmNuIT 28 of 390 menu
◀ ▶

Целые типы в C++

Целые числа в C++ представлены следующими типами: short, int, long и long long. Разница между ними - сколько байтов занимает ячейка в оперативной памяти и какое самое большое число в нее помещается.

Самым основным типом для чисел является тип int. На обычном компьютере это 4 байта, около двух миллиардов в плюс и в минус. Количество, номер и сумма в разумных пределах туда входят. Например. число 1500000 помещается, а число 3000000000 больше двух миллиардов - и в int уже не влазит.

Тип long проблемный, так как для него размер ячейки зависит от операционной системы. В Windows это те же 4 байта, что у типа int, около двух миллиардов в плюс и в минус. В Linux и macOS чаще 8 байт, около девяти квинтиллионов в плюс и в минус. Один и тот же текст на разных компьютерах вмещает в long разные числа.

Тип long long занимает 8 байт и в Windows, и в Linux, и в macOS, около девяти квинтиллионов в плюс и в минус. Для чисел, которые не помещаются в int, стоит пользоваться именно этим типом.

Тип short состоит из 2 байтов, около 32 тысяч в плюс и в минус. Число вроде 40000 в эти 2 байта уже не поместится.

Запишем три числа в подходящие типы и выведем их:

short num1 = 9; int num2 = 1500000; long long num3 = 3000000000; std::cout << num1 << "\n"; std::cout << num2 << "\n"; std::cout << num3 << "\n";

Сведем типы и диапазоны на обычном компьютере:

Тип Байты Диапазон
short 2 от -32768 до 32767
int 4 от -2147483648 до 2147483647
long 4 или 8 в Windows как int, в Linux и macOS как long long
long long 8 от -9223372036854775808 до 9223372036854775807

В каком диапазоне изменяются числа типа short?

В каком диапазоне изменяются числа типа int?

В каком диапазоне изменяются числа типа long?

В каком диапазоне изменяются числа типа long long?

Есть число 40000. Помещается ли оно в диапазон типа short?

Есть число 100000. Помещается ли оно в диапазон типа int?

Есть число 2147483648. Помещается ли оно в диапазон типа int?

Есть число 3000000000. Помещается ли оно в диапазон типа int?

Есть число 100000000000. Помещается ли оно в диапазон типа int?

Есть число 100000000000. Помещается ли оно в диапазон типа long long?

Есть число 9223372036854775808. Помещается ли оно в диапазон типа long long?

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить