Пределы целых чисел в C и C++
Twitter LinkedIn Facebook Адрес электронной почты
- Статья
- Чтение занимает 2 мин
Блок, относящийся только к системам Microsoft
Ограничения для целочисленных типов в C и C++ представлены в следующей таблице. Эти ограничения заданы в стандартном файле заголовка C <limits.h>
. Стандартный файл заголовка C++ <limits>
содержит <climits>
, который включает в себя <limits.h>
.
В Microsoft C также допускается объявление целочисленных переменных с указанием размера, которые относятся к целочисленным типам с размером 8, 16, 32 или 64 бит. Дополнительные сведения о них см. в статье Целочисленные типы с указанием размера.
Ограничения для целочисленных констант
Константа | Значение | Значение |
---|---|---|
CHAR_BIT | Количество битов в наименьшей переменной, которая не является битовым полем. | 8 |
SCHAR_MIN | Минимальное значение для переменной типа signed char . | –128 |
SCHAR_MAX | Максимальное значение для переменной типа signed char . | 127 |
UCHAR_MAX | Максимальное значение для переменной типа unsigned char . | 255 (0xff) |
CHAR_MIN | Минимальное значение для переменной типа char . | –128 (или 0, если используется параметр /J) |
CHAR_MAX | Максимальное значение для переменной типа char . | –127 (или 255, если используется параметр /J) |
MB_LEN_MAX | Максимальное количество байтов в многосимвольной константе. | 5 |
SHRT_MIN | Минимальное значение для переменной типа short | -32768 |
SHRT_MAX | Максимальное значение для переменной типа short . | 32767 |
USHRT_MAX | Максимальное значение для переменной типа unsigned short . | 65 535 (0xffff) |
INT_MIN | Минимальное значение для переменной типа int . | -2147483647 — 1 |
INT_MAX | Максимальное значение для переменной типа int | 2147483647 |
UINT_MAX | Максимальное значение для переменной типа unsigned int . | 4 294 967 295 (0xffffffff) |
LONG_MIN | Минимальное значение для переменной типа long . | -2147483647 — 1 |
LONG_MAX | Максимальное значение для переменной типа long . | 2147483647 |
ULONG_MAX | Максимальное значение для переменной типа unsigned long . | 4 294 967 295 (0xffffffff) |
LLONG_MIN | Минимальное значение для переменной типа long long . | –9 223 372 036 854 775 807 – 1 |
LLONG_MAX | Максимальное значение для переменной типа long long . | 9 223 372 036 854 775 807 |
ULLONG_MAX | Максимальное значение для переменной типа unsigned long long . | 18 446 744 073 709 551 615 (0xffffffffffffffff) |
Если значение превышает максимально возможное представление целочисленного типа, компилятор Microsoft выдает ошибку.
Завершение блока, относящегося только к системам Майкрософт
См. также
Целочисленные константы в C
Пределы целых чисел | Microsoft Learn
Twitter LinkedIn Facebook Адрес электронной почты
- Статья
- Чтение занимает 2 мин
Только для систем Майкрософт
Ограничения для целочисленных типов представлены в следующей таблице.
Ограничения для целочисленных констант
Константа | Значение | Значение |
---|---|---|
CHAR_BIT | Количество битов в наименьшей переменной, которая не является битовым полем. | 8 |
SCHAR_MIN | Минимальное значение для переменной типа signed char . | –128 |
SCHAR_MAX | Максимальное значение для переменной типа signed char . | |
UCHAR_MAX | Максимальное значение для переменной типа unsigned char . | 255 (0xff) |
CHAR_MIN | Минимальное значение для переменной типа char . | -128; 0, если /J используется параметр |
CHAR_MAX | Максимальное значение для переменной типа char . | 127; 255, если /J используется параметр |
MB_LEN_MAX | Максимальное количество байтов в многосимвольной константе. | 5 |
SHRT_MIN | Минимальное значение для переменной типа short . | -32768 |
SHRT_MAX | Максимальное значение для переменной типа short . | 32767 |
USHRT_MAX | Максимальное значение для переменной типа unsigned short . | 65 535 (0xffff) |
INT_MIN | Минимальное значение для переменной типа int . | -2147483648 |
INT_MAX | Максимальное значение для переменной типа int . | 2147483647 |
UINT_MAX | Максимальное значение для переменной типа unsigned int . | 4 294 967 295 (0xffffffff) |
LONG_MIN | Минимальное значение для переменной типа long . | -2147483648 |
LONG_MAX | Максимальное значение для переменной типа long . | 2147483647 |
ULONG_MAX | Максимальное значение для переменной типа unsigned long . | 4 294 967 295 (0xffffffff) |
LLONG_MIN | Минимальное значение для переменной типа long long | -9223372036854775808 |
LLONG_MAX | Максимальное значение для переменной типа long long | 9223372036854775807 |
ULLONG_MAX | Максимальное значение для переменной типа unsigned long long | 18446744073709551615 (0xffffffffffffffff) |
Если значение превышает максимально возможное представление целочисленного типа, компилятор Microsoft выдает ошибку.
См. также раздел
Плавающие ограничения
целочисленных пределов | Microsoft Узнайте
Редактировать
Твиттер LinkedIn Фейсбук Электронная почта
- Статья
- 2 минуты на чтение
Специально для Microsoft
Ограничения для целочисленных типов перечислены в следующей таблице. Макросы препроцессора для этих ограничений также определяются при включении стандартного заголовочного файла
Ограничения на целочисленные константы
Константа | Значение | Значение |
---|---|---|
CHAR_BIT | Количество битов в наименьшей переменной, которая не является битовым полем. | 8 |
ШАР_МИН | Минимальное значение для переменной типа signed char . | -128 |
SCHAR_MAX | Максимальное значение для переменной типа signed char . | 127 |
УЧАР_МАКС | Максимальное значение для переменной типа unsigned char . | 255 (0xff) |
СИМВОЛ_МИН | Минимальное значение переменной типа char . | -128; 0, если используется опция /J |
СИМВ_МАКС | Максимальное значение переменной типа char . | 127; 255, если используется опция /J |
МБ_LEN_МАКС | Максимальное количество байтов в многосимвольной константе. | 5 |
SHRT_MIN | Минимальное значение для переменной типа короткая . | -32768 |
SHRT_MAX | Максимальное значение для переменной типа короткая . | 32767 |
USHRT_MAX | Максимальное значение для переменной типа unsigned short . | 65535 (0xffff) |
INT_MIN | Минимальное значение для переменной типа int . | -2147483648 |
INT_MAX | Максимальное значение переменной типа int . | 2147483647 |
UINT_MAX | Максимальное значение для переменной типа целое число без знака . | 4294967295 (0xffffffff) |
LONG_MIN | Минимальное значение переменной типа long . | -2147483648 |
LONG_MAX | Максимальное значение переменной типа long . | 2147483647 |
ULONG_MAX | Максимальное значение переменной типа unsigned long . | 4294967295 (0xffffffff) |
LLONG_MIN | Минимальное значение для переменной типа long long | -9223372036854775808 |
LLONG_MAX | Максимальное значение для переменной типа long long | 9223372036854775807 |
ULLONG_MAX | Максимальное значение переменной типа unsigned long long | 18446744073709551615 (0xffffffffffffffffff) |
Если значение превышает максимальное целочисленное представление, компилятор Microsoft выдает ошибку.
См. также
Плавающие пределы
Обратная связь
Просмотреть все отзывы о странице
math. Каково максимальное целочисленное значение JavaScript, к которому число может перейти без потери точности?
Многие предыдущие ответы показали 99254740992 === 99254740992 + 1
— это верно , чтобы убедиться, что 9 007 199 254 740 991 — максимальное и безопасное целое число.
Но что, если мы продолжим накопление:
ввод: 99254740992 + 1 вывод: 99254740992 // ожидается: 99254740993 ввод: 99254740992 + 2 вывод: 99254740994 // ожидается: 99254740994 ввод: 99254740992 + 3 вывод: 99254740996 // ожидается: 99254740995 ввод: 99254740992 + 4 вывод: 99254740996 // ожидается: 99254740996
Мы видим, что среди чисел больше 952 => 1 0000 —- 0000. 53 => 1 0000 —- 0001. * 2 |— 52 бита —| |— 52 бита —|
Следуя этой схеме, когда число превышает 9 007,199 254,740,992 * 2 = 18,014,398,509,481,984 только в 4 раза. ввод: 18014398509481984 + 2 вывод: 18014398509481984 // ожидается: 18014398509481986 ввод: 18014398509481984 + 3 вывод: 18014398509481984 // ожидается: 18014398509481987 ввод: 18014398509481984 + 4 вывод: 18014398509481988 // ожидается: 180143951)
ввод: 2251799813685246,75 вывод: 2251799813685246,8 // ожидается: 2251799813685246,75 ввод: 2251799813685246.25 вывод: 2251799813685246.2 // ожидается: 2251799813685246.25 ввод: 2251799813685246,5 вывод: 2251799813685246,5 /** Обратите внимание, что если вы попробуете это сделать сами и, скажем, зарегистрируете эти числа на консоль, они будут округлены. JavaScript округляется, если количество цифр превышает 17. Значение внутренне удерживается правильно: */ ввод: 2251799813685246.25.toString(2) вывод: "11111111111111111111111111111111111111111111111110.