шестнадцатеричное число перевернулось? - PullRequest
0 голосов
/ 07 марта 2012

У меня есть вопрос, который может показаться странным, но, пожалуйста, ответьте на вопрос ...

Это то, что я называю «адресом» в игре, в которую я играю: 0037F1C8

Что я пытаюсь добиться в vc ++ - это преобразовать этот «адрес» в такой результат: C8 F1 37 00

Если вы заметили, что этот результат является «адресом», но выплюните справа налево, чтобы окончательный результат оказался слева направо.

Результатом является то, что я затем ввожу в созданный мной пакет и затем отправляю на сервер игры.

Мне нужен код, который будет делать это в vc ++, так как я понятия не имею, как его перевернуть и разметить так.

Спасибо.

P.S. Я пытался погуглить свой вопрос, но, как вы видите, я вроде не знаю, как правильно сформулировать свой вопрос.

1 Ответ

1 голос
/ 07 марта 2012

Вы не объясняете, в какой форме вы хотите получить свой результат. Вы пытаетесь получить строку ASCII с этим содержимым?

В любом случае, очевидный способ поместить их в строку - это

  • Преобразование указателя в целое число соответствующего размера (по-видимому, 32 бита)
  • Извлечение каждого из байтов целого числа, наиболее разумно, выполняя серию смен и масок.
  • sprintf'ing четырех результирующих байтов в строку.

Строка формата, которую вы ищете, будет выглядеть примерно так: "%2X %2X %2X %2X"

Подходящая маска для вастолько младший байт int "i" будет выглядеть примерно так: i & 0xff

В этих условиях я бы просто объявил четыре целых числа, чтобы поместить отдельные байты, вместо того, чтобы делать что-то причудливое - скорее всего,не стоит того.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...