LINUX.ORG.RU

[школота][python][little endian]

 ,


0

1

Привет!

У меня есть EEPROM с little-endian порядком байт на ней. В памяти лежит четыре байта:

typedef struct
{
  unsigned short int    var;
  unsigned char         set;
  unsigned char         get;
} instr;

я считываю четыре байта. получается, что поле var представлено двумя байтами:

    var_max = struct.unpack('B', var_max)[0]
    var_min = struct.unpack('B', var_min)[0]

на вход функции поступают эти два байта, а вернуть мне нужно одно число с учетом порядка байтов. как это сделать?

битовыми оп.ми жэ >> и &

anonymous
()

#-*- coding: utf8 -*- import struct

TEST_DATA = '\x01\x02\x03\x04'

s_var, s_set, s_get = struct.unpack('<HBB', TEST_DATA)

print s_var, s_set, s_get

result = struct.pack('<H', s_var)

print repr(result)

?

s0rg
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.