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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Портирование с C# на PHP

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Robox
Отправлено: 18 Октября, 2011 - 19:26:16
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




Есть C# код, что выполняет проверку CRC суммы файла:
Спойлер (Отобразить)


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

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


Файл прикрепил, он "специфичный" (от прошивки DECT телефона), в мечтах менять данные прошивки и заливать )))
Скачать файл: test.hdr
Скачан раз: 77
 
 Top
Champion Супермодератор
Отправлено: 18 Октября, 2011 - 19:34:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Возможно, что дело в типах данных. ushort - это до 65000 с чем-то, а в коде на php вы работаете с интегером. Код на си-сетке расчитывает на потерю разрядов, а на php ее не происходит.
Может, другая причина. Надо по выводить промежуточные результаты, отловить различие
 
 Top
Robox
Отправлено: 18 Октября, 2011 - 19:52:31
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




Выводил всё что думал, не понял где косяк.
По поводу 65000 - я попал?
 
 Top
Champion Супермодератор
Отправлено: 18 Октября, 2011 - 20:00:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Robox пишет:
По поводу 65000 - я попал?
Попал - это в смысле запоролся?
Это не безвыходная ситуация, можно результат сдвига привести к 16разрядному числу вот так: $n &= 65536;
И сдвиг, и умножение - у всего надо занулять таким способом разряды, старшие 16го.
Но только лучше сначала убедиться в чем дело.
 
 Top
Robox
Отправлено: 19 Октября, 2011 - 16:31:04
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




Непонимаю как и где вставить ваши: $n &= 65536;
 
 Top
Robox
Отправлено: 03 Ноября, 2011 - 13:41:25
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




Неактуально, закройте. Написал на C#
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB