2016-06-22 3 views
1

Как сделать php-код «echo 62837 < < -16;» вернуть тот же результат между окнами и linux?Как сделать php-код «echo 62837 << -16;» вернуть тот же результат между окнами и linux?

окна результат: результат -176881664

Linux: -759700962142060544

+0

Я думаю, что это проблема формата данных, хост Windows может быть 32-битным и Linux 64-битным? – GiamPy

ответ

2

Shifting отрицательным числом вызывает исключение в PHP 7+, так что, очевидно, недействительна сделать это.

Fatal error: Uncaught ArithmeticError: Bit shift by negative number 

В C, она вызывает неопределенное поведение, см: Left shifting with a negative shift count

Чтобы ответить на ваш вопрос: Вы не можете сделать код, который вызывает неопределенное поведение вернуть последовательные результаты на разных платформах. Этот код необходимо изменить, чтобы не сдвигать отрицательное число.

+0

Я получил код от http://www.tero.co.uk/des/code.php. Исходный код DES. – user6498456

+1

Затем этот код необходимо исправить. – ShiraNai7

+0

Это не дает ответа на вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже их сообщения. - [Из обзора] (/ review/low-quality-posts/12772293) –