@brexer74

Что за способ представления float через 4 byte и int?

Я думаю вы не поняли вопрос, так же как и я не понимаю о чем спрашиваю. Сейчас покажу о чем речь. Мне нужно через ReadWriteMemory записать в адрес значение. Дело в том, что (как я понял) ReadWriteMemory не может записать в адрес именно float. Он записывает какое то свое его представление через 4 byte и int. Это можно показать на фото из Cheat Engine. 6728470ed1e36316913407.png На первом скрине мы видим float который "читается" как float, а на втором скрине видим тот же самый float, который читается через 4 bytes те int. ReadWriteMemory может записывать только int => мне нужно перевести float в такой вот int. Как это сделать? Я пробовал запаковывать, распаковывать через struct, но они выдают список байтов, а мне нужен int. Если попробовать из этого списка байтов получить int через int.from_bytes() то он получает не тот int, который я ожидаю получить. Скрин:
672848a00ced0459345886.png
Я буду благодарен если вы назовете что это за способ такой, (хотя скорее всего это вообще баг) и очень рад если вы подскажете как мне конвертировать float в этот 4 bytes int
  • Вопрос задан
  • 76 просмотров
Решения вопроса 1
@dim5x
ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
import struct

float_value = 3.50999999

# Преобразуем float в байты
byte_value = struct.pack('f', float_value)

# Преобразуем байты в целое число
int_value = int.from_bytes(byte_value, byteorder='little')
print(int_value)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
IEEE 754, число одинарной точности.
Берём онлайн-конвертер, подставляем ваше 3.51, получаем 0x4060a3d7 = 1080075223.
6728b27b62938189104727.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы