Wie wird eine vorzeichenbehaftete Ganzzahl als hexadezimale Zahl in Zweierkomplement mit Python gedruckt?

8

Ich habe eine negative ganze Zahl (4 Bytes), von denen ich die hexadezimale Form der Zweierkomplementdarstellung haben möchte.

%Vor%

Aber ich würde gerne "FF ..." sehen

    
none 13.07.2010, 08:49
quelle

6 Antworten

5

Hier ist ein Weg (für 16-Bit-Nummern):

%Vor%

(Vielleicht nicht der eleganteste Weg)

    
adamk 13.07.2010, 08:58
quelle
4
%Vor%     
John La Rooy 13.07.2010 09:57
quelle
3

Verwenden Sie das Bitstring -Modul:

%Vor%     
Scott Griffiths 13.07.2010 09:06
quelle
2

Einfach

%Vor%     
siu 27.08.2014 14:46
quelle
1

Um eine ganze Zahl als Binärwert zu behandeln, werden Sie bitweise und mit einer Maske der gewünschten Bitlänge behandelt.

Zum Beispiel, für einen 4-Byte-Wert (32-Bit) maskieren wir mit 0xffffffff :

%Vor%     
dcoles 28.08.2015 03:10
quelle
0

Das Modul struct führt Konvertierungen zwischen Python-Werten und C-Strukturen durch, die als Python-Byte-Objekte dargestellt werden. Das gepackte Byteobjekt bietet Zugriff auf einzelne Bytewerte. Dies kann verwendet werden, um die zugrundeliegende (C) Ganzzahldarstellung anzuzeigen.

%Vor%     
gimel 13.07.2010 11:09
quelle