Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Каков смысл ограничений чисел?
 
 автор: Shorr Kan   (02.05.2008 в 08:29)   письмо автору
 
 

В php есть int max, есть границы для rand... Зачем это? Я несовсем понимаю, зачем числовые границы для компьютера. Ему посчитать 9*9 и (9^9^9^9)*9 - едино. Для чего ограничения в директивах?

   
 
 автор: sim5   (02.05.2008 в 10:08)   письмо автору
 
   для: Shorr Kan   (02.05.2008 в 08:29)
 

Да это не ограничение, а представление, и наверное потому, что удобнее представлять:
11111111111111111111111111*1 не как = 11111111111111111111111111, а как = 1.11111111111E+25, например.

   
 
 автор: AnddA   (02.05.2008 в 13:03)   письмо автору
 
   для: sim5   (02.05.2008 в 10:08)
 

int в PHP представляется 4 байтами. Отсюда и взялось это ограничение.

   
 
 автор: Atheist   (02.05.2008 в 14:56)   письмо автору
 
   для: AnddA   (02.05.2008 в 13:03)
 

> int в PHP представляется 4 байтами
Это никак не причина, это следствие. Кстати, не в PHP, а в компьютере.

Ограничение, очевидно, из-за разрядности процессора. Будет у тебя 64-разрядный (64-битный) процессор с операционной системой, которая это поддерживает - максимальное целое будет 9223372036854775807.

   
 
 автор: Shorr Kan   (02.05.2008 в 15:23)   письмо автору
 
   для: Atheist   (02.05.2008 в 14:56)
 

Я о другом спрашиваю. Если причину указания максимально-используемой оперативы в php.ini я понимаю, то причину указания там максимально используемого целого числа - нет. Откуда такая необходимость?

   
 
 автор: sim5   (02.05.2008 в 15:29)   письмо автору
 
   для: Shorr Kan   (02.05.2008 в 15:23)
 

Ну это еще объяснимо: 2147483647 = 7FFFFFFF, ну и другая половина для отрицательных чисел. Но как понять в РНР такое:
111111111111*1 = 111111111111
1111111111111111*1 = 1111111111110000, а JS покажет 1111111111111111
11111111111111111*1 = 1.11111111111E+16, и только с этой разрядности вразумительно?

   
 
 автор: Atheist   (02.05.2008 в 15:29)   письмо автору
 
   для: Shorr Kan   (02.05.2008 в 15:23)
 

> причину указания там максимально используемого целого числа - нет
Может покажешь такую директиву?

   
 
 автор: Shorr Kan   (02.05.2008 в 20:10)   письмо автору
 
   для: Atheist   (02.05.2008 в 15:29)
 

Не-а, не покажу. Просто знаю, что есть константа PHP_INT_MAX . Наверное где-то она устанавливается, правильно?

   
 
 автор: Atheist   (02.05.2008 в 21:21)   письмо автору
 
   для: Shorr Kan   (02.05.2008 в 20:10)
 

> Наверное где-то она устанавливается, правильно?
Неправильно. Точнее, раз она существует, то устанавливается. Но всяко не в php.ini:

REGISTER_MAIN_LONG_CONSTANT("PHP_INT_MAX", LONG_MAX, CONST_PERSISTENT | CONST_CS);

   
 
 автор: sim5   (02.05.2008 в 15:32)   письмо автору
 
   для: Shorr Kan   (02.05.2008 в 15:23)
 

А при чем тут php.ini?

   
 
 автор: Shorr Kan   (02.05.2008 в 20:07)   письмо автору
 
   для: sim5   (02.05.2008 в 15:32)
 

А разве PHP_INT_MAX устанавливается не в php.ini ?
Но про разрядность я понял - спасибо.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования