int1 = 11111111
int2 = 22222222
long1 = 6666666666666666
int3 = 33333333
int4 = 44444444
int5 = 55555555
pack_list = (int1,int2,long1,int3,int4,int5)
pack_format = struct.Struct('> I I L I I I')
pack_data = pack_format.pack(*pack_list)
print "Original_values:", pack_list
print "Format_string:", pack_format.format
print "Uses:", pack_format.size,'bytes'
print "Packed_value:", binascii.hexlify(pack_data)
У меня есть 64 бита в длинной переменной, но когда я упаковываю с использованием обратного порядка байтов, он обрабатывает его как целое число, которое вы можете видеть в выводе, показывающем как 24 байта вместо 28 байтов, что является фактической длиной данных. Может ли кто-нибудь сказать мне, что происходит, и помочь мне получить все 64 бита в упакованных данных с прямым порядком байтов?
Исходные значения: (11111111, 22222222, 66666666, 33333333, 44444444, 55555555) Format_string: > I I L I I I
Использование: 24 байта
Packed_value: 11111111222222254455555
Q
, а неL
. - person abarnert   schedule 08.06.2018