php int максимальное значение

Php int максимальное значение

Целые могут быть указаны в десятичной, шестнадцатеричной или восьмеричной системе счисления, по желанию, с предшествующим знаком (- или +).

Формально возможная структура целых такова:

десятичные : 42*
| 0

шестнадцатеричные: 0[xX][0-9a-fA-F]+

восьмеричные: 04+

целые:

Размер целого зависит от платформы, хотя, как правило, максимальное значение около двух миллиардов (это 32-битное знаковое). PHP не поддерживает беззнаковые целые.

Превышение размера целого

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

// это справедливо и для шестнадцатеричных целых:
var_dump ( 0x80000000 );
// вывод: float(2147483648)

( 25 / 7 ); // float(3.5714285714286)
var_dump ((int) ( 25 / 7 )); // int(3)
var_dump ( round ( 25 / 7 )); // float(4)
?>

Преобразование в целое (integer)

Для несомненного преобразования значения в целое используйте приведение типа (int) или (integer). Однако в большинстве случаев вам нет необходимости использовать приведение типа, поскольку значение будет автоматически преобразовано, если оператор, функция или управляющая конструкция требует целый аргумент. Вы также можете преобразовать значение в целое при помощи функции intval().

Преобразование типа integer в тип boolean

Преобразование типа integer в тип float

Если число с плавающей точкой превышает пределы целого (как правило, это +/- 2.15e+9 = 2^31 ), результат будет неопределенным, так как целое не имеет достаточной точности, чтобы вернуть верный результат. В этом случае не будет выведено ни предупреждения, ни даже замечания!

Внимание! Никогда не приводите неизвестную дробь к целому, так как это может иногда дать неожиданные результаты (подробнее об этой особенности здесь) Пример ошибочного преобразования:

echo (int) ( ( 0.1 + 0.7 ) * 10 ); // выводит 7! (ошибка!)
?>

Преобразование типа integer в тип string

Преобразование типа integer в другие типы данных

Для других типов поведение преобразования типа integer не определено.

Источник

Целые числа

Синтаксис

Целые числа могут быть указаны в десятичной (основание 10), шестнадцатеричной (основание 16), восьмеричной (основание 8) или двоичной (основание 2) системе счисления, с необязательным предшествующим знаком (- или +).

Двоичная запись integer доступна начиная с PHP 5.4.0.

Для записи в восьмеричной системе счисления, необходимо поставить пред числом 0 (ноль). Для записи в шестнадцатеричной системе счисления, необходимо поставить перед числом 0x. Для записи в двоичной системе счисления, необходимо поставить перед числом 0b

Пример #1 Целые числа

Формально, структуру целых чисел можно записать так:

Если в восьмеричном integer будет обнаружена неверная цифра (например, 8 или 9), оставшаяся часть числа будет проигнорирована.

Пример #2 Странности с восьмеричными числами

Переполнение целых чисел

Пример #3 Переполнение целых на 32-битных системах

Пример #4 Переполнение целых на 64-битных системах

Преобразование в целое

Из булевого типа

Из чисел с плавающей точкой

Если число с плавающей точкой превышает размеры integer (обычно +/- 2.15e+9 = 2^31 на 32-битных системах и +/- 9.22e+18 = 2^63 на 64-битных системах, кроме Windows), результат будет неопределенным, так как float не имеет достаточной точности, чтобы вернуть верный результат. В этом случае не будет выведено ни предупреждения, ни даже замечания!

Источник

Целые числа

integer это число из набора Z =

Синтаксис

Целые числа могут специфицироваться в десятеричной (база 10), 16-ричной (база 16) или 8-ричной (база 8) нотации с необязательным знаком (- или +).

Если вы используете 8-ричную нотацию, первым символом числа должен быть 0 (нуль), для 16-ричной нотации первыми символами числа будут 0x.

Пример 6-1. Целочисленные литералы

Размер integer зависит от платформы, хотя максимальное значение около 2 миллионов является обычным (то есть 32-битное знаковое). PHP не поддерживает беззнаковые integers.

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

Если вы специфицируете число за рамками диапазона типа integer, оно будет интерпретировано как float. Также, если вы выполняете операцию, которая даёт в результате число за пределами диапазона типа integer, будет возвращено float.

Предупреждение!

Это устранено в PHP 4.1.0.

В PHP нет операции целочисленного деления. 1/2 даст float 0.5.

Конвертация в integer

Для явной конвертации значения в integer используйте приведение (int) или (integer). Однако в большинстве случаев вам нет необходимости использовать приведение/cast, поскольку значение будет конвертировано автоматически, если операция, функция или структура управления требует integer-аргумента.

Из boolean

Из чисел с плавающей точкой

При конвертации float в integer, число округляется в сторону нуля.

Если float выходит за диапазон integer (обычно это +/- 2.15e+9 = 2^31), результат будет неопределённым, поскольку float не имеет достаточной точности для выдачи точного integer-результата. В этом случае не будет выдано ни предупреждения, ни даже какого-либо уведомления!

Предупреждение! Никогда не приводите неизвестную дробь к integer, так как это может дать непредсказуемый результат.

Из string

Из других типов

Предупреждение! Поведение при конвертации в integer для других типов не определено. В настоящее время поведение такое же, как если бы значение сначала было конвертировано в boolean. Однако не полагайтесь на это поведение, так как оно может быть изменено без предупреждения.

Источник

Какое максимальное значение для int в PHP?

Не обращая внимания на специальные библиотеки, которые позволяют работать с очень большими числами, какое наибольшее значение int вы можете сохранить в PHP?

8 ответов

64-битные платформы обычно имеют максимальное значение около 9E18, за исключением Windows до PHP 7, где оно всегда было 32-битным.

32-разрядные сборки PHP:

64-битные сборки PHP:

Цифры указаны включительно.

Примечание: в некоторых 64-разрядных сборках когда-то использовались 32-разрядные целые числа, особенно в старых сборках PHP для Windows

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

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

PHP 6 добавляет «длинные» (64-битные целые числа).

(немного поздно, но может быть полезно)

Любая другая «догадка» или «намек» может быть ложной.

Целочисленное переполнение

Если PHP встречает число за пределами целочисленного типа, оно будет интерпретироваться как число с плавающей точкой. Кроме того, операция, результатом которой является число, выходящее за пределы целочисленного типа, вместо этого вернет число с плавающей запятой.

Хотя константы PHP_INT_* существуют очень давно, одни и те же значения MIN / MAX могут быть найдены программно путем сдвига влево до достижения отрицательного числа:

Это зависит от архитектуры сервера, на котором работает PHP. Для 64-битной версии

Источник

Каково максимальное значение для int в PHP?

64-разрядные платформы обычно имеют максимальное значение около 9E18, за исключением Windows до PHP 7, где всегда было 32 бит.

32-битные сборки PHP:

64-битные сборки PHP:

A ± 9 квинтиллионов)

Примечание: некоторые 64-битные сборки однажды использовали 32-битные целые числа, особенно старые версии Windows для PHP

Значения вне этих диапазонов представлены значениями с плавающей запятой, а также нецелыми значениями в этих диапазонах. Интерпретатор автоматически определит, когда этот переход к плавающей запятой должен произойти, исходя из того, нельзя ли представить значение результата вычисления не как целое число.

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

PHP 6 добавляет «longs» (64-битные ints).

(немного поздно, но может быть полезно)

Любая другая «догадка» или «подсказка» может быть ложной.

Целочисленное переполнение

Если PHP встречает число за пределами целочисленного типа, оно будет интерпретироваться как float. Кроме того, операция, которая приводит к числу за пределами целочисленного типа, вместо этого возвращает float.

Ответов: 6

64-разрядные платформы обычно имеют максимальное значение около 9E18, за исключением Windows до PHP 7, где всегда было 32 бит.

32-битные сборки PHP:

64-битные сборки PHP:

A ± 9 квинтиллионов)

Примечание: некоторые 64-битные сборки однажды использовали 32-битные целые числа, особенно старые версии Windows для PHP

Значения вне этих диапазонов представлены значениями с плавающей запятой, а также нецелыми значениями в этих диапазонах. Интерпретатор автоматически определит, когда этот переход к плавающей запятой должен произойти, исходя из того, нельзя ли представить значение результата вычисления не как целое число.

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

PHP 6 добавляет «longs» (64-битные ints).

(немного поздно, но может быть полезно)

Любая другая «догадка» или «подсказка» может быть ложной.

Целочисленное переполнение

Если PHP встречает число за пределами целочисленного типа, оно будет интерпретироваться как float. Кроме того, операция, которая приводит к числу за пределами целочисленного типа, вместо этого возвращает float.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *