Когда я использую метод python struct.pack, я получаю странный результат. код выглядит следующим образом:получение неожиданного результата при использовании метода struct.pack Python
>>> struct.pack('<i', 0x01d1f23a)
В результате я пытаюсь получить шестнадцатеричный адрес преобразуется в небольшой Endian («<»). Редакцией: Эквивалент Perl (жаль, не знаю, Perl на печать в)
#!/usr/bin/perl
my $eip = pack('V',0x01ccf23a);
print "$eip[0]";
print "$eip[1]";
print "$eip[2]";
print "$eip[3]";
результат: 582422041
Мне нужно добиться того же результата с питоном.
Так какой результат вы ожидали, и что вы получили вместо этого? – jonrsharpe
Можете ли вы объяснить, почему двоеточие является проблемой? Для чего вы используете выходную строку? Вы хотите строку длиной 4, содержащую четыре символа 'chr (0x3a)', 'chr (0xf2)', 'chr (0xd1)' и 'chr (0x01)', или вы хотите, чтобы строка длиной 16, выглядит как '\ x3a \ xf2 \ xd1 \ x01' при печати? (И если последнее, * почему??) Или что-то еще? –
Эй, я только что редактировал мой вопрос. Я хочу, чтобы результат был таким: 582422041 –