читать два целых числа из буфера в Python - PullRequest
0 голосов
/ 25 октября 2019

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

[-1920 -1320]

Как я могу преобразовать их в фактическую метку времени?

У меня была похожая проблема при преобразовании одного 64-битного целого числа раньше, и я использовал

np.frombuffer()

, но теперь мойзначение состоит из двух целых чисел. Как мне объединить их и прочитать соответствующую информацию?

1 Ответ

0 голосов
/ 25 октября 2019

Отметка времени расплывчата, поэтому я не уверен, что вы хотите там, вам нужно указать формат. При этом вы можете преобразовать эти 16-разрядные числа в одно большое 32-разрядное число, выполнив следующие действия:

nums = [-1920, -1320]
bits_16 = 0xffff

# 2's compiliments
r = [bin(y & bits_16)[2:] if y < 0 else f'{y:016b}' for y in nums]

# Condense all the 2's into one string and convert to int
int_value = int(''.join(r), 2)
print(r)
print(int_value)

Вывод:

['1111100010000000', '1111101011011000']
4169202392 # The signed version (2's compliment) would be -125764904
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...