Как получить значение типа int8 из одного байта?

Как можно получить значение -56 вместо 200 из байта 0xC8 в бинарном файле в Python?
  • 26 августа 2024 г. 16:34
Ответы на вопрос 2
Для получения значения типа int8 из одного байта в Python можно воспользоваться методом int.from_bytes(). Например:

```python
byte_value = b'\xc8'  # байт со значением 200
int8_value = int.from_bytes(byte_value, byteorder='big', signed=True)
print(int8_value)  # выводит 200
```

Чтобы получить значение -56 из байта 0xC8 вместо 200, можно предположить, что байт должен интерпретироваться как значение int8 в дополнительном коде. Для этого можно использовать следующий код:

```python
def int8_from_byte(byte):
    if byte > 127:
        return byte - 256
    return byte

byte_value = 0xC8  # байт со значением 200
int8_value = int8_from_byte(byte_value)
print(int8_value)  # выводит -56
```
пакет struct метод unpack 
data=b'\xc8'
struct.unpack('b', data)[0]

data типа bytes, можно считывать из файла, открывая как бинарный файл, флаги 'rb'
Похожие вопросы