![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
artmel |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 10.6.2014 Репутация: нет Всего: нет |
Помогите пожалуйста перевести функцию с си на пхп
не понимаю конструкций checksum_areas[i].addr_start % 4 && checksum_areas[i].addr_start |
|||
|
||||
s1lver |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 14.12.2007 Где: Россия Репутация: нет Всего: нет |
Вы бы, лучше, написали что требуется сделать и что не работает. А так, не думаю что кто-то ответит.
Это сообщение отредактировал(а) s1lver - 27.11.2015, 13:07 -------------------- Я собрался жить вечно - пока все идет нормально! |
|||
|
||||
artmel |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 10.6.2014 Репутация: нет Всего: нет |
это алгоритм расчета контрольной суммы.
нужно его написать на пхп. смысл в том что я не могу понять сам алгоритм. если бы я понял что там, то на пхп я и сам бы переписал. |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Что там непонятного-то?
![]() checksum_areas - массив из структур такого состава {addr_start:XXX,addr_end:XXX,checksum_value:XXX}. Соответственно checksum_areas[i].addr_start - выковырять значение нужного поля структуры. checksum_areas[i].addr_start %4 - получить остаток от деления числа на 4. Это точно Сишник писал? Лучше было бы пару последних битов взять. А вот адресной арифметики в PHP нету, пичалька... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
artmel |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 10.6.2014 Репутация: нет Всего: нет |
Спасибо!
к сожалению не хватает постов плюсик в репутацию добавить. я не знаю кто это написал, иначе бы просто спросил у него. вроде разобрался, кроме что такое *addr; почему стоит звездочка? Это сообщение отредактировал(а) artmel - 27.11.2015, 17:15 |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Это С. В переменной addr располагается адрес памяти; конструкция *addr представляет собой значение в памяти по тому адресу. Это как раз та штука, которой и нет в php. Что за задача-то решается? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
artmel |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 10.6.2014 Репутация: нет Всего: нет |
Спасибо!
у меня это (значение по адресу) выполняет отдельно написанная функция. Так я написал, расчитывается контрольная сумма файла. По итогу похоже просто сложение 32битных чисел. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |