![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| CynicRus |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 248 Регистрация: 31.5.2012 Репутация: нет Всего: 5 |
Приветствую уважаемых форумчан. Переношу алгоритм из Java в Delphi, но некоторые мозговзрывные вещи синтаксиса Java заставляют меня просить вашей помощи, поскольку у меня их перенести правильно не выходит.
И так, есть цикл:
Я знаю, что do.. while = repeat .. until. Но, что что в в этом цикле происходит, как и условие выхода из него - я пока не смог представить в Delphi.(in - массив байтов) Затем имеется оператор Switch:
Как я пока не силюсь, я не могу подобрать адекватные Delphi эквиваленты для представленного кода. Буду очень признателен за помощь, или за адекватный гайд по переносу Java выражений. Это сообщение отредактировал(а) Poseidon - 21.8.2013, 11:48 |
||||
|
|||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Добавлено через 2 минуты и 41 секунду targetLength += (in[sourceIndex] & 0x7f) << (i++ * 7); += это targetLength := targetLength + (in[sourceIndex] & 0x7f) << (i++ * 7); Добавлено через 3 минуты и 27 секунд ++ в Delphi это Inc() т.е. l++ это Inc(l) Добавлено через 4 минуты и 4 секунды Полностью эту (in[sourceIndex++] & 0xff) запись я разобрать не могу Добавлено через 4 минуты и 41 секунду & - это в delphi, наверное OR - или просто +, т.е. операция (логического) сложения |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
do.. while в Java, это скорее while..do в Delphi.
Switch, по-моему, обычный case в Delphi. -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| CynicRus |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 248 Регистрация: 31.5.2012 Репутация: нет Всего: 5 |
Относительно операторов то проблем не возникает, проблема у меня именно с условиями, явовской математикой. Как распарсить запись вида: (in[sourceIndex] & 0x7f) << (i++ * 7);, << это ведь поидее оператор присвоения. Но чему он тут присваивается? Или же что означает o |= in[sourceIndex++] & 0xff; , & по идее - логическое и. Но в попытке охватить этот, у меня без опыта в Java - мозг падает в segfault:) А do while, это всё же repeat until, посколько repeat прогоняет код 1 раз в любом случае, a while do вроде сначала условие проверяет, а потом уже код выполняет. Это сообщение отредактировал(а) CynicRus - 21.8.2013, 12:20 |
|||
|
||||
| MetalFan |
|
||||||||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
это сдвиг влево, т.е. shl в делфи "|=" - это побитовое сложение, т.е. operator := operator OR.... типа +=, математическое сложение
примерно так:
Добавлено @ 15:44
Я бы перевел как-то так:
на истину не претендую, думаю, что может даже не скомпилится... но направление понятно, я думаю) Это сообщение отредактировал(а) MetalFan - 21.8.2013, 15:47 -------------------- There are always someone smarter than you... |
||||||||
|
|||||||||
| CynicRus |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 248 Регистрация: 31.5.2012 Репутация: нет Всего: 5 |
Спасибо! И вот ещё 1 маленький вопросик в дополнение к первому:
как переписать выражение :
насколько я понял это примерно тоже самое что:
но я не до конца уверен-) Это сообщение отредактировал(а) CynicRus - 22.8.2013, 10:31 |
||||
|
|||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
CynicRus, да, можно короче:
-------------------- There are always someone smarter than you... |
|||
|
||||
| CynicRus |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 248 Регистрация: 31.5.2012 Репутация: нет Всего: 5 |
Спасибо!
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |