Wenn ich zwei Hex-Strings habe und eine zu einer 32-Bit-Ganzzahl ohne Vorzeichen und die andere zu einem 64-Bit konvertieren möchte Ganzzahl ohne Vorzeichen, welche Basis würde ich die int()
Funktion bereitstellen?Uint32 vs Uint64: Welche Basen brauche ich für die 'int()' Funktion, um richtig zu funktionieren
Antwort
So habe ich vermasselt und Int() bestimmt nicht die Größe oder das Zeichen Ihrer Hex-Zeichenfolge.
Per Definition hex ist 16. Sie würde also mit der Hex-Basis von 16
int('A1S31231', 16)
Das Problem zwischen 32 Bit und 64 Bit in der Zeichenfolge gesetzt wurde einfach die Größe der Zeichenfolge als setzt in Streit.
Aufgrund ihrer Größe,
2 Hex-Zeichen = 1 Byte
Wenn ich also ein 64-Bit int hätte, würde es 8 Byte oder ein 16-Zeichen-hex String sein. Wenn ich einen 32-Bit-Int hatte, wäre es 4 Bytes oder 8 Zeichen Hex-String.
Based off Duncan's answer: Um Ihr Ergebnis unsigniert zu machen. Sie müssten Ihr Ergebnis und &
sie mit ihrer richtigen Maske nehmen.
Wenn Sie von Hex zu einem Uint32 gehen freuen Sie würden die oben genannten int tun() Umwandlung und dann
result & 0xffffffff
Wenn Sie von hex gehen wollten Sie UInt64 würde die oben genannten int tun () Umwandlung und dann
result & 0xffffffffffffffff
Nun, Python entscheidet normalerweise, wie viel Speicher man sich selbst zuweisen soll. Siehe das folgende Beispiel:
>>> type(int('0x7fffffff', 16))
<type 'int'>
>>> type(int('0x80000000', 16))
<type 'long'>
Basierend auf der Größe der Nummer weist Python die richtige Speichermenge zu.
ABER wenn Sie die Methode verwenden long()
statt int()
, immer 8 Bytes zugewiesen werden, egal, was die Zahl ist:
>>> type(long('0x7fffffff', 16))
<type 'long'>
>>> type(long('0x80000000', 16))
<type 'long'>
* Getestet für Python 2.7 (nicht getestet mit 3 .x)
In Python 3 gibt es keinen Unterschied zwischen int und long. Jede Integer-Zahl kann beliebig groß sein (solange Sie genügend Speicher haben). – warownia1
- 1. Was ist das OSX, C-Äquivalent für uint32 und uint64?
- 2. Schnellste Möglichkeit, int int int in UInt32 zu konvertieren?
- 3. Welche Bibliotheken brauche ich, um std :: Platzhalter zu verwenden?
- 4. Gute Hash-Funktion zum Generieren von Uint64 oder Uint32 Feature-ID in Sparse Machine Learning
- 5. Wie bekomme ich AssImp um richtig zu funktionieren?
- 6. Wie aktiviere ich Javascript, um in GeckoFX richtig zu funktionieren?
- 7. welche Funktion soll ich für Split verwenden, um die Zeichenfolge
- 8. Konvertieren von Int in UInt32 in Swift
- 9. Welche Compiler-Option/Bibliothek brauche ich, um die Eigenschaft detect_or_t type zu verwenden?
- 10. UInt32 [] gegen UInt32 *
- 11. Ich brauche Hilfe, dieses Programm zu bekommen, um meine Ausgaben richtig zu drucken
- 12. Kann isNaN Funktion nicht richtig funktionieren
- 13. NSString zu UInt64
- 14. Ich brauche einen int-Variable umwandeln zu verdoppeln
- 15. Ich brauche eine langsame C# -Funktion
- 16. Welche Funktion muss ich aufrufen, um das Fenster zu überblenden?
- 17. Welche Option brauche ich in setup.py, um das Paket im richtigen Verzeichnis zu erstellen?
- 18. Welche Art von CAL brauche ich für Sharepoint?
- 19. Schnellste Umwandlung von UInt32 nach int in C#
- 20. Warum brauche ich die Gil für PyMem_Malloc()?
- 21. Welche Funktion verwende ich, um den Post-Text zu bekommen?
- 22. Kafka Quickstart: Welche Abhängigkeiten brauche ich?
- 23. Welche Art von Schlüssel brauche ich?
- 24. Welche MVC-Sache brauche ich hier?
- 25. Firebase + OneSignal Welche Abhängigkeiten brauche ich?
- 26. java.lang.VerifyError: MappingJacksonHttpMessageConverter, welche Jackson-Version brauche ich?
- 27. Welche Änderungen brauche ich, damit meine Tabellen in BigTable von AppEngine funktionieren?
- 28. jQuery UI: Welche Dateien brauche ich?
- 29. Druck Funktion, die int
- 30. Welche APIs brauche ich, um meinen eigenen Windows-Laufwerksbuchstaben zu schreiben?
See [diese Frage] (http://stackoverflow.com/questions/7675222/in-javascript-how-is-integer-represented-in-storage-layout) –
Werfen Sie einen Blick http://stackoverflow.com/questions/2104884/how-does-python-manage-int-and-long –