![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Levsha |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 30.9.2005 Репутация: нет Всего: 4 |
Здравствуйте. Есть такой вот элементарный код:
Локально все высчитывается правильно, возвращается число -443704711. Но сервер упорно возвращает -2147439834. Почему сервер может считать неправильно? И там и там PHP5. Вроде операция относится к стандартным логическим, и отдельной библиотеки для нее не нужно, хотя я с трудом понимаю, что делает эта операция. -------------------- Предлагаем создание сайта в Хабаровске - http://web-alt.ru. А ты сдал анализы? Самый полный анализ сайта! |
|||
|
||||
vasac |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 8 Всего: 36 |
Потому что на сервере может быть одна архитектура, а на локалке другая.
Потому что сервер может хранить целые числа в одном размере, а локалка в другом (ваше число даже в 32-битные не входит) Потому что сервер может хранить отрицательные числа одним образом, а локалка другим. |
|||
|
||||
Levsha |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 30.9.2005 Репутация: нет Всего: 4 |
Вот-вот. Там какие-то проблемы с отрицательными числами, опытным путем установил. Как мне это обойти? Какое именно действие выполняется в $a = $b ^ $c ? Может у кого есть заменяющая функция? -------------------- Предлагаем создание сайта в Хабаровске - http://web-alt.ru. А ты сдал анализы? Самый полный анализ сайта! |
|||
|
||||
WolfON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: 6 Всего: 8 |
http://ru2.php.net/integer
Обновите версию интерпретатора. Ну или если все совсем плохо, то: http://ru2.php.net/manual/ru/ref.bc.php и http://ru2.php.net/manual/ru/ref.gmp.php |
|||
|
||||
vasac |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 8 Всего: 36 |
Зачем вы выполняете действие, которое не знаете? |
|||
|
||||
Levsha |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 30.9.2005 Репутация: нет Всего: 4 |
vasac, это действие используется в генерации ключа, скрипт чужой.
Но мне нужно сгенерировать тот-же ключ. Локально получилось, получается проблема только в сервере. Вот и тужусь. Каким образом? В смысле весь PHP обновить? Он и так пятый. За ссылки спасибо, изучаю -------------------- Предлагаем создание сайта в Хабаровске - http://web-alt.ru. А ты сдал анализы? Самый полный анализ сайта! |
|||
|
||||
Levsha |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 30.9.2005 Репутация: нет Всего: 4 |
Кто нибудь знает что именно выполняет оператор ^ ?
Поигрался с двоичными значениями, наткнулся на следующее, стандартные операторы преобразования в двоичное и обратно врут с отрицательными значениями:
Кто нибудь знает точное правило преобразования отрицательного числа в двоичное? Добавлено через 49 секунд В смысле сам алгоритм? Мож кто выполнял этот алгоритм? -------------------- Предлагаем создание сайта в Хабаровске - http://web-alt.ru. А ты сдал анализы? Самый полный анализ сайта! |
|||
|
||||
vasac |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 8 Всего: 36 |
Он выполняет ровно то, что написано в документации — побитовое исключающее ИЛИ.
Отрицательные обычно хранятся в дополнительном коде — инвертируются все биты и прибавляется единица. Как можно понять, результат при этом будет сильно зависеть от количества битов в числе. Конвертация десятичных в двоичные не даст представления о том, как числа хранятся в памяти. Это сообщение отредактировал(а) vasac - 8.6.2007, 20:07 |
|||
|
||||
sTa1kEr |
|
||||||||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Но так как,
То работать на 32-х битной архитектуре это не будет. И обновление PHP здесь, к сожалению, никак не поможет. А вот GMP Functions (см. ссылку WolfON) тут как раз подойдут.
|
||||||||
|
|||||||||
Levsha |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 30.9.2005 Репутация: нет Всего: 4 |
Разобрал функцию по кусочкам, полностью вручную переписал её действие но все равно не подошло.
sTa1kEr, так ведь на чужом хостинге сижу. Они новый модуль ставить не будут. Менять надо на фиг хостеров. В общем скоро новую тему создам, сюда отпишусь. -------------------- Предлагаем создание сайта в Хабаровске - http://web-alt.ru. А ты сдал анализы? Самый полный анализ сайта! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |