[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Казус-резус с типом int
Eninub
Минимальное значение целового типа int для 32-разрядных ОС равно -2147483648. Тогда почему функции - is_int(-2147483648) и var_dump(-2147483648) возращают тип float,
killer8080
Цитата (Eninub @ 27.06.2016 - 21:55)
Минимальное значение целового типа int для 32-разрядных ОС равно -2147483648

неправильно, правильно -2147483647
Eninub
Но,
echo PHP_INT_MIN; // выдает 2147483648

Как это понимать? А вот выдержка из PHP manual: ... The maximum value depends on the system. 32 bit systems have a maximum signed integer range of -2147483648 to 2147483647.
killer8080
Eninub
знак это старший бит, т.е. 32-ой, для самого числа остается 31 бит
echo bindec(str_pad('', 31, '1')); // 2147483647




Спустя 3 минуты, 18 секунд killer8080 написал(а):
если у тебя 32-х битная система, выведи
echo 0xffffffff;
увидишь минимальное INT
Eninub
echo 0xffffffff; // вывело 4294967295

Я работаю с Eclipce PHP, может в нём проблема?
killer8080
Цитата (Eninub @ 27.06.2016 - 23:01)
echo 0xffffffff; // вывело 4294967295

значит у тебя 64-х битный PHP, не может у тебя такое быть
Цитата (Eninub @ 27.06.2016 - 21:55)
var_dump(-2147483648) возращают тип float,

ты что то путаешь
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.