Заголовочный файл cstdint
описывает целочисленные типы данных с установленными диапазонами представления чисел. Вместе с типами данных, в этом файле определены макросы с указанием верхних и нижних границ представляемых значений и макро-функции для формирования диапазонов представляемых значений для каждого типа данных. Ниже, в таблице, приводятся целочисленные типы данных и их описание.
Целочисленные типы данных
Целые типы данных имеют размеры 8, 16, 32 и 64 бит. Никаких других целочисленных типов данных с меньшим размером в С++ не существует. Ниже приведена таблица целочисленных типов данных, с константами и описанием.
Знаковый | Беззнаковый | Описание |
---|---|---|
intmax_t | uintmax_t | Целочисленный тип данных с максимальным диапазоном представления чисел. (8 байт) |
int_8t | uint_8t | Целочисленные типы данных с шириной диапазона представления чисел 8, 16, 32 и 64 бита, соответственно.
Эти типы данных могут быть не определены в некоторых реализациях библиотек. |
int_16t | uint_16t | |
int_32t | uint_32t | |
int_64t | uint_64t | |
int_least8_t | uint_least8_t | Целочисленные типы данных с минимальной шириной диапазона представления чисел 8, 16, 32 и 64 бита, соответственно. Никаких других целочисленных типов данных с меньшей шириной диапазона не существует. |
int_least16_t | uint_least16_t | |
int_least32_t | uint_least32_t | |
int_least64_t | uint_least64_t | |
int_fast8_t | uint_fast8_t | Целочисленный тип данных с минимальной шириной диапазона представляемых значений 8, 16, 32 и 64 бита. Эти типы данных, по крайней мере, так же быстро работают, как и любой другой целочисленный тип, с соответствующей шириной диапазона. |
int_fast16_t | uint_fast16_t | |
int_fast32_t | uint_fast32_t | |
int_fast64_t | uint_fast64_t | |
intptr_t | uintptr_t | Целочисленный тип данных способный представлять значение, преобразованное из указателя на void и обратно.
Эти типы данных могут быть не определены в некоторых реализациях библиотек. |
Некоторые из этих типов данных могут обозначать одни и те же типы данных. Таким образом, перегруженные функции не должны полагаться на эти типы данных.
Обратите внимание, что некоторые типы данных не являются обязательными (и, следовательно, не могут быть переносимыми). Некоторые реализации библиотеки могут также определить дополнительные типы данных, с другой шириной диапазонов для совместимости со своей системой.
Ниже показаны ограничения типов данных заголовочного файла cstdint
.
Макросы
Макрос | Описание | Диапазон |
---|---|---|
INTMAX_MIN | Минимальное значение типа данных intmax_t |
-(263), или меньше |
INTMAX_MAX | Максимальное значение типа данных intmax_t |
263-1, или больше |
UINTMAX_MAX | Максимальное значение типа данных uintmax_t |
264-1, или больше |
INTN_MIN | Минимальное значение знакового типа данных N (8, 16, 32, 64) | -2(N-1) |
INTN_MAX | Максимальное значение знакового типа данных N (8, 16, 32, 64) | 2(N-1)-1 |
UINTN_MAX | Максимальное значение беззнакового типа данных N (8, 16, 32, 64) | 2N-1 |
INT_LEASTN_MIN | Минимальное значение знакового типа данных N, с минимальной шириной диапазона. | -(2(N-1)-1), или меньше |
INT_LEASTN_MAX | Максимальное значение знакового типа данных N, с минимальной шириной диапазона. | 2(N-1)-1, или больше |
UINT_LEASTN_MAX | Максимальное значение беззнакового типа данных N, с минимальной шириной диапазона. | 2N-1, или больше |
INT_FASTN_MIN | Минимальное значение быстрого знакового типа данных. | -(2(N-1)-1), или меньше |
INT_FASTN_MAX | Максимальное значение быстрого знакового типа данных. | 2(N-1)-1, или больше |
UINT_FASTN_MAX | Максимальное значение быстрого беззнакового типа данных. | 2N-1, или больше |
INTPTR_MIN | Минимальное значение intptr_t . |
-(215-1), или меньше |
INTPTR_MAX | Максимальное значение intptr_t . |
215-1, или больше |
UINTPTR_MAX | Максимальное значение uintptr_t . |
216-1, или больше |
Вместо N подставляйте количество битов - 8, 16, 32, 64.
Ограничение остальных целочисленных типов данных, показаны ниже.
Макросы границ целочисленных типов данных
Макросы | Описание | Ширина диапазона |
---|---|---|
SIZE_MAX | Максимальное значение типа данных size_t |
264-1, или больше |
PTRDIFF_MIN | Минимальное значение типа данных ptrdiff_t |
-(216-1), или меньше |
PTRDIFF_MAX | Максимальное значение типа данных ptrdiff_t |
216-1, или больше |
SIG_ATOMIC_MIN | Минимальное значение типа данных sig_atomic_t |
если sig_atomic_t знаковый: -127, или больше.
если sig_atomic_t беззнаковый: 0 |
SIG_ATOMIC_MAX | Максимальное значение типа данных sig_atomic_t |
если sig_atomic_t знаковый: 127, или больше
если sig_atomic_t беззнаковый: 255, или меньше |
WCHAR_MIN | Минимальное значение типа данных wchar_t |
если wchar_t знаковый: -127, или меньше
если wchar_t беззнаковый: 0 |
WCHAR_MAX | Максимальное значение типа данных wchar_t |
если wchar_t знаковый: 127, или больше
если wchar_t беззнаковый: 255, или больше |
WINT_MIN | Минимальное значение типа данных wint_t |
если wint_t знаковый: -32767, или меньше
если wchar_t беззнаковый: 0 |
WINT_MAX | Максимальное значение типа данных wint_t |
если wint_t знаковый: 32767, или больше
если wchar_t беззнаковый: 65535, или больше |
Макро-функции
Эти функции преобразовывают передаваемые им значения в целочисленные константные выражения:
Макрос | Описание |
---|---|
INTMAX_C | Преобразование значения к типу данных intmax_t . |
UINTMAX_C | Преобразование значения к типу данных uintmax_t . |
INTN_C | Преобразование значения к типу данных int_leastN_t . |
UINTN_C | Преобразование значения к типу данных uint_leastN_t . |