Заголовочный файл 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.
Автор:
Дата:
Поделиться: