Страница: 1 |
Вопрос: Стандартная функция, преобразовывающая hex-стро... | Добавлено: 05.05.03 15:24 |
Автор вопроса: ![]() |
существует ? Т.е. у нее на входе "FF", на выходе должно быть 255. Как это сделать стандартными средствами ? |
Ответы | Всего ответов: 14 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 0 Ответов: 5 |
Профиль | Цитата | #1 | Добавлено: 05.05.03 16:15 |
public function ZZZZZ(by val pPar as string) as integer ZZZZZ = val("&H" & pPar) end function msgbox(ZZZZZ("FF")) ->255
|
Номер ответа: 2 Автор ответа: ![]() ![]() ICQ: 226072 Вопросов: 48 Ответов: 107 |
Профиль | Цитата | #2 | Добавлено: 06.05.03 10:10 |
Пасиб |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 5 |
Профиль | Цитата | #3 | Добавлено: 07.02.05 19:33 |
У меня такая вот проблема... Хочу сделать кое-какой редактор, но не могу правильно перевести из ХЕКСа во флоат. Например, E5DF86C4 это в переводе на русский значит -1078.9967.
Есть ли функция, которая может так переводить? |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 07.02.05 20:27 |
http://babbage.cs.qc.edu/courses/cs341/IEEE-754hex32.html |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 5 |
Профиль | Цитата | #5 | Добавлено: 08.02.05 16:56 |
Спасибо за ссылку, но к сожалению она мне не помогла.
Что интересно, я сделал программку, которая переводит хекс в нормальное число. Из E5DF86C4 получается -438335804. Но HexWorkshop это число (E5DF86C4) переводит совсем не так, а вот как: Signed long -997793819 Unsigned long 3297173477 Float (32 бита) -1078.9967 (вот оно-то мне и нужно) Такая вот загогулина, понимашь.... |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 08.02.05 17:38 |
А про обратный порядок байт в слове и двойном слове ты слышал? Если в памяти находится E5 DF 86 C4, то оно равно не 0xe5df86c4, а 0xc486dfe5, т.е. HexWorkshop тебе перевел правильно. А почему тебе не помогла ссылка? Там ведь все понятно написано, не то, что в самом стандарте... Но если тебе нужен стандарт, поищи IEEE-754 |
Номер ответа: 7 Автор ответа: ![]() ![]() ICQ: 780477 Вопросов: 72 Ответов: 1297 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 08.02.05 18:42 |
CopyMemory Forever И, к слову, а как в HEX может быть FLOAT??? HEX оно с Float не совместимое... 2Sharp а? |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 08.02.05 19:11 |
Типа имеется ввиду машинное представление чисел с плавающей точкой, по старой системе float - 32-битовое нецелое, double - 64-битовое нецелое, long double - 80-битовое нецелое. Подробнее надо у CyRax'а узнавать, он этим интересовался.
Человеку, таким образом, надо перевести HEX-запись машинного представления вещественных чисел в двоичный вид. |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #9 | Добавлено: 08.02.05 19:11 |
Тьфу, в десятичный |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 5 |
Профиль | Цитата | #10 | Добавлено: 08.02.05 19:40 |
Я действительно не совсем понимаю всю эту науку. Как перевести 0F в 15 это ежу понятно. Но каким образом из 00008040 получить 4 я никак не пойму.
Где бы посмотреть алгоритм? В инете никак не могу найти. |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #11 | Добавлено: 08.02.05 19:49 |
А кто из 00008040 получает 4? Если это непосредственно число, должно получиться 32832, если это в памяти, тогда 1082130432 |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 5 |
Профиль | Цитата | #12 | Добавлено: 08.02.05 21:22 |
Странно, у меня хексэдитор на 0000 8040 показывает флоат 4.
А вот сигнед лонг 1082130432. 0000 8041 - это 16 и т д. Дело в том, что я хочу сделать программу, которая обрабатывает особые файлики. Интересующие меня числа там помещены в таком вот неудобном виде. Я хочу, чтобы программа сначала читала всю эту гадость E5DF86C4 60B4B2C0 542D8E43 словно это текст (это я уже сделал), а затем бы переводила это всё в десятичные дроби. Если кому интересно, то это файлики из игры Мафия, и в них записаны координаты некоторых объектов. Структуру я уже знаю. |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #13 | Добавлено: 08.02.05 22:54 |
А IEEE-754 ты так и не читал? |
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 5 |
Профиль | Цитата | #14 | Добавлено: 11.02.05 12:52 |
Да, спасибо огромное. Нашёл наконец. Хотя и с трудом.
Плясать тут надо от двоичного представления. Структура такая: знак показ. степ. мантисса х хххх хххх ххх хххх хххх хххх хххх хххх Само число равно -1 в степени знака умножить на 2 в степени (показат.степени - 127) и умножить на 1.мантисса. То есть единичка, а после запятой мантисса идёт. Ещё раз спасибо, сам бы не справился. |
Страница: 1 |
|