[python] Chyba v modulu struct
Jaroslav Pachola
j_p na centrum.cz
Úterý Prosinec 6 16:21:00 CET 2005
Ahoj,
Dne Tuesday 06 December 2005 12:56 Jan Troler napsal(a):
> Ahoj Vsem,
> narazil jsem na nasledujici chovani modulu struct:
>
> In [12]: struct.pack('HI',8,1), struct.calcsize('HI')
> Out[12]: ('\x08\x00\x00\x00\x01\x00\x00\x00', 8)
>
> In [13]: struct.pack('IH',8,1), struct.calcsize('IH')
> Out[13]: ('\x08\x00\x00\x00\x01\x00', 6)
>
> Je videt, ze formatovy retezec 'HI' a 'IH' dava rozdilny vysledek.
> Zkouseno na Python 2.3.4. Vite o tom nekdo neco?
>
> Honza
to podle me neni chyba, ale feature. Jestlize se kompilator rozhodne (a podle
dokumentace to je mozne), ze ukladani 32 bitovych integeru zacne na adrese
delitelne ctyrmi, tak bych ho u toho nechal. Dulezite je ale, aby unpack
korektne vytahnul ta data zpet. Mimochodem, v tom prikladu asi mas chybku,
chtel jsi mozna
struct.pack('IH', 1, 8),
aby to bylo "zhruba totez". Ale to je asi jenom prehlednuti.
JP
Další informace o konferenci Python