Какие основные типы целых данных используются в программировании?
Целые данные предназначены для хранения чисел без дробной части: количества элементов, индексов, счетчиков, кодов, размеров, идентификаторов и результатов целочисленных операций.
Главные различия между целыми типами связаны с размером в памяти, диапазоном значений и наличием знака.
Знаковые и беззнаковые типы
Знаковые целые типы
Знаковые типы могут хранить отрицательные, нулевые и положительные значения.
Пример диапазона для 32-битного знакового числа:
- от -2 147 483 648;
- до 2 147 483 647.
Такие типы применяются, когда величина может быть отрицательной: баланс, изменение координаты, разность, температура.
Беззнаковые целые типы
Беззнаковые типы хранят только ноль и положительные значения.
Для 32 бит диапазон обычно такой:
- от 0;
- до 4 294 967 295.
Они подходят для размеров, битовых масок, адресов, кодов символов, счетчиков, которые не должны быть отрицательными.
Типичные размеры целых типов
8 бит
Часто называется byte или char в зависимости от языка.
Используется для:
- байтов данных;
- кодов символов;
- бинарных протоколов;
- компактного хранения небольших чисел.
16 бит
Часто называется short.
Используется реже, но может применяться в системном программировании, работе с файлами и устройствами.
32 бита
Часто называется int.
Это самый распространенный целый тип для обычных счетчиков, индексов и арифметики.
64 бита
Часто называется long, long long или bigint в зависимости от языка.
Используется для больших значений:
- времени в миллисекундах;
- больших идентификаторов;
- количества записей;
- задач, где 32 бит недостаточно.
Примеры в разных языках
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 с.