Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Портирование с C# на PHP
Форумы портала PHP.SU » » Вопросы новичков » Портирование с C# на PHP

Страниц (1): [1]
 

1. Robox - 18 Октября, 2011 - 19:26:16 - перейти к сообщению
Есть C# код, что выполняет проверку CRC суммы файла:
Спойлер (Отобразить)


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

Спойлер (Отобразить)


Файл прикрепил, он "специфичный" (от прошивки DECT телефона), в мечтах менять данные прошивки и заливать )))
2. Champion - 18 Октября, 2011 - 19:34:12 - перейти к сообщению
Возможно, что дело в типах данных. ushort - это до 65000 с чем-то, а в коде на php вы работаете с интегером. Код на си-сетке расчитывает на потерю разрядов, а на php ее не происходит.
Может, другая причина. Надо по выводить промежуточные результаты, отловить различие
3. Robox - 18 Октября, 2011 - 19:52:31 - перейти к сообщению
Выводил всё что думал, не понял где косяк.
По поводу 65000 - я попал?
4. Champion - 18 Октября, 2011 - 20:00:29 - перейти к сообщению
Robox пишет:
По поводу 65000 - я попал?
Попал - это в смысле запоролся?
Это не безвыходная ситуация, можно результат сдвига привести к 16разрядному числу вот так: $n &= 65536;
И сдвиг, и умножение - у всего надо занулять таким способом разряды, старшие 16го.
Но только лучше сначала убедиться в чем дело.
5. Robox - 19 Октября, 2011 - 16:31:04 - перейти к сообщению
Непонимаю как и где вставить ваши: $n &= 65536;
6. Robox - 03 Ноября, 2011 - 13:41:25 - перейти к сообщению
Неактуально, закройте. Написал на C#

 

Powered by ExBB FM 1.0 RC1