и посоветоваться не с кем. программа (немецкая) хранит в файле количество точек. Ну и сами точки дальше идут.
Например:
2 точки b'\x02\x00\x00\x00'
26 точек b'\x1a\x00\x00\x00'
Казалось бы понятно: это little endian int64
Но: 0 точек b'\xff\xff\xff\x7f'
Если я в hex редакторе меняю b'\xff\xff\xff\x7f' на b'\x00\x00\x00\x00' то прога все ещё корректно читает файл
Может кто подсказать что это за формат такой? На int64 уже не похоже
Почему инт64 то, когда инт32? Не совсем понимаю, почему у тебя 0 должен читаться некорректно
да, int32, это я не внимательно писал ну в файле который немецкая прога сохранила 0 точек b'\xff\xff\xff\x7f'. Если я меняю на b'\x00\x00\x00\x00' то для программы это всё ещё 0 точек. Получается в как будто это странный тип в котором два 0?
Может быть это не 0 точек а -1 (отсутствие результата) который в самой программе интерпретируется как 0
-1 например значения нет, 0 это значение есть но нулевое
вот тут и наступает ступор у меня. это ведь не -1, а максимальное положительное. старший бить равен 0, значит положительное. а потом все 1
А есть возможность самому задавать количество точек? Создай MAX_INT точек и -1 точек и сравни результат
Это глупая затея пытаться угадать чужой формат данных который не описан оно конечно может быть Можно иногда Но логика тут может быть любая Например если там 0 точек то мы записываем в это поле Минус один.
Ну max uint, какая разница?
Так попробуй значения меньше ffffff7f, мне кажется там человек просто юзает значения в определённом диапазоне, а переполнение зануляет, да и тип может быть беззнаковый.
ffffff7e программа "зависла". Думаю начала читать огромное число точек
А если старший бит 1?
-1 создать не смогу, прога из физического источника точки получает. Я хочу чтоб она часть точек пропустила потому что знаю что они паразитные. могу 1,2,3,... они соответствуют le int32 или le uint32
щас попробую...
Да просто 2147483648
а. то есть только количество поменять, не создавая сами точки?
max_uint и -1 должны иметь одинаковые значения если не ошибаюсь
Логично ведь -1 это все выставленные биты)
Обсуждают сегодня