Какие основные типы целых данных используются в программировании?

Целые данные предназначены для хранения чисел без дробной части: количества элементов, индексов, счетчиков, кодов, размеров, идентификаторов и результатов целочисленных операций.

Главные различия между целыми типами связаны с размером в памяти, диапазоном значений и наличием знака.

Знаковые и беззнаковые типы

Знаковые целые типы

Знаковые типы могут хранить отрицательные, нулевые и положительные значения.

Пример диапазона для 32-битного знакового числа:

Такие типы применяются, когда величина может быть отрицательной: баланс, изменение координаты, разность, температура.

Беззнаковые целые типы

Беззнаковые типы хранят только ноль и положительные значения.

Для 32 бит диапазон обычно такой:

Они подходят для размеров, битовых масок, адресов, кодов символов, счетчиков, которые не должны быть отрицательными.

Типичные размеры целых типов

8 бит

Часто называется byte или char в зависимости от языка.

Используется для:

16 бит

Часто называется short.

Используется реже, но может применяться в системном программировании, работе с файлами и устройствами.

32 бита

Часто называется int.

Это самый распространенный целый тип для обычных счетчиков, индексов и арифметики.

64 бита

Часто называется long, long long или bigint в зависимости от языка.

Используется для больших значений:

Примеры в разных языках

C/C++:     char, short, int, long, long long, unsigned int
C#:        byte, sbyte, short, ushort, int, uint, long, ulong
Java:      byte, short, int, long
Pascal:    Byte, ShortInt, Integer, LongInt, Int64
TypeScript: обычный number, а для больших целых — bigint
Python:    int произвольной длины

Переполнение

Если результат операции выходит за диапазон типа, возникает переполнение. В одних языках это может привести к ошибке, в других — к переходу через границу диапазона.

Например, для 8-битного беззнакового числа после 255 может снова получиться 0, если язык или среда допускают циклическое переполнение.

Когда какой тип выбирать

Обычно выбирают int для стандартных счетчиков и индексов, long или bigint для больших чисел, byte для бинарных данных, unsigned-типы для битовых операций и значений, которые не могут быть отрицательными.

Вывод

основные целые типы различаются размером, диапазоном и знаком. Выбор типа должен соответствовать смыслу данных и ожидаемому диапазону значений.

Источники

  • Семакин И.Г. Основы программирования и баз данных. Учебник. - М.: Академия, 2014. - 224 с.
  • Симонова Е.В. Структуры данных в C#. Линейные и нелинейные динамические структуры. - Лань, 2018. - 152 с.
  • Бертран Мейер. Почувствуй класс. Учимся программировать хорошо с объектами и контрактами. - М.: Национальный Открытый Университет "ИНТУИТ": БИНОМ. Лаборатория знаний, 2011. - 775 с.
  • Мэтт Вайсфельд. Объектно-ориентированное мышление. - СПб.: Питер, 2014. - 304 с.
  • Ривест Р., Штайн К., Лейзерсон Ч., Кормен Т. Алгоритмы: построение и анализ. - М.: Вильямс, 2007. - 1296 с.
  • Стивенс Род. Алгоритмы. Теория и практическое применение. - М.: Эксмо, 2017. - 544 с.
  • Рублев В.С. Основы теории алгоритмов. - 2-е издание, исправленное. - М.: Научный мир, 2008. - 128 с.
  • Гольдберг Г.Л. Основы алгоритмизации и программирования. - М.: Академия, 2012. - 384 с.
  • Лаврищева И.В. Технология программирования. - М.: Горячая линия - Телеком, 2011. - 400 с.
  • Сергеев И.С., Сухоруков А.И., Шестаков А.А. Программирование: учебник для вузов. - М.: БИНОМ. Лаборатория знаний, 2013. - 512 с.