![]() |
Модераторы: bsa Страницы: (11) Все « Первая ... 3 4 [5] 6 7 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]() ![]() ![]() |
|
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
битовое представление floata равного n не не соответствует битовому представлению этого числа в dword/int (дополненого нулями) |
|||
|
||||
J0ker |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
нет |
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
mes, я струдом догадываюсь что такое битовое представление, тем более дополненное нулями О_о, и причем тут это
команда push [mem32] копирует 4 байта по адресу mem32 в стек, и она не обращает внимания на "битовое представление" этих байт. J0ker, и в каком же месте это не решение? Это сообщение отредактировал(а) GoldFinch - 8.12.2008, 21:22 |
|||
|
||||
J0ker |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
в месте преобразования типа - размещение значений с плавающей точкой в памяти и обратная операция сопряжено с преобразованием типов нельзя корректно положить на стек число с плавающей точкой иначе чем через стек FPU |
|||
|
||||
mes |
|
||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
сейчас набросаю пример почему не явлется решением :
Добавлено @ 21:33 вот примерно что получится в результате вашго решения :
Это сообщение отредактировал(а) mes - 8.12.2008, 21:35 |
||||
|
|||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
J0ker, mes, жжоте... какие громкие заявления) какая уверенность в правоте своих слов... вы не правы.
Потому что черное это черное, а белое это белое. Есть много способов премещать значения в памяти, и если вы этого не знаете это не значит что эти способы неверны) Курите документацию к процу и вам откроется истина) Но какие замечательные высказывания от вроде бы малость разбирающихся в программировании людей... Записал бы, да бред не коллекционирую. upd: mes, нет, Ваш код ниразу не соответствует той ситуации. Это сообщение отредактировал(а) GoldFinch - 8.12.2008, 21:43 |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
никакой громкости.. Вам был представлен пример, который показывает что участок памяти трактованный как int, числено не равен этому же участку памяти но трактованному как float. жаль что Вы даже не захотели этого понять ;) И ночью тоже ?
а кто нибудь оспаривал ? речь не о перемещении а о трактовке значения. А вот это действительно громко. Записал бы, но .... я думаю Вы догадались ) |
|||
|
||||
J0ker |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
так..... тут было потерто обкидывание оппонента какашками
![]() Это сообщение отредактировал(а) J0ker - 8.12.2008, 22:20 |
|||
|
||||
mes |
|
||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
вот немного изменил код, чтоб легче было понимать что происходит .. желаю приятных эксперементов :
|
||||
|
|||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
mes, что за бредовый пруфкод вы пишете? то что мы обсуждаем выглядит так:
в строчке "push dword ptr [arg]" float значение передается в стек через push а не через пару fld/fstp что характерно прога выводит "8/7==8/7" Это сообщение отредактировал(а) GoldFinch - 8.12.2008, 22:20 |
|||
|
||||
J0ker |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
GoldFinch, я вам объясняю... совершенно спокойно, вот...
преобразование из дабл во флоат - это ОПЕРАЦИЯ - она не может быть выполнена без привлечения FPU либо его эмулятора если вы в своих примерах замените float на double вы сразу это поймете |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
A Вы схитрили .. перепешите код изменив эту срочку на int Bar(int arg) вот Вам каркас теста :
потом еше можете изменить int на double и посмотреть результат ) Это сообщение отредактировал(а) mes - 8.12.2008, 22:36 |
|||
|
||||
J0ker |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
GoldFinch, вот, разберитесь уже наконец
|
|||
|
||||
GoldFinch |
|
||||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
J0ker,
где Вы тут увидели double??? тот самый 64-разрядный double, а не 32-разрядный float?? надеюсь Вы понимаете что мы говорим о 32(тридцатидвух)-разрядных значениях?? но специально для Вас, я перепишу код для double, и даже уберу там баги которых Вы не заметили)))
какбэ 64-разрядные значения запихиваются в стек двумя push [mem32] более того, пиши я под x64, там был бы один push [mem64] Добавлено @ 22:44 J0ker, Вас в вашем коде строчки 00401658 fstp dword ptr [esp+4] 0040165C fld dword ptr [esp+4] не смущают? и вообще, как эта муть относится к теме? mes, медленно, вдумчиво, прочитайте еще раз этот код, и Вы поймете что Вы пишите не по теме. .text:10001344 fld [esp+18h+arg_4] .text:10001348 fstp [esp+18h+var_14] .text:1000134C fld dword ptr [eax+4] .text:1000134F fstp [esp+18h+var_18] .text:10001352 call FCanvasUtil::DrawLine(float,float,float,float,FColor,int) ну нету в этом коде ничего связанного с int, не-ту Это сообщение отредактировал(а) GoldFinch - 8.12.2008, 22:48 |
||||
|
|||||
J0ker |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
да я собстна не про этот код ![]() я его даже не читал
а вас смущает? а что вас смущает? ![]() когда вы это поймете, дискуссия будет окончена ![]() |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |