ich viele der ganzen Zahlen in meinem Programm als UInt8
speichern, einen 0 mit - 255 Wertebereich. Später werde ich viele von ihnen summieren, um ein Ergebnis zu erhalten, das in einem Int
gespeichert werden kann. Muss ich diese Konvertierung vornehmen, bevor ich die Werte von UInt8
zu Int
den Zweck von mir benutze, einen kleineren Datentyp zu verwenden, um damit zu beginnen? Ich denke, es wäre schneller, nur Int
zu verwenden, aber leiden einen größeren Speicherbedarf. Aber warum gehen Sie für UInt8
, wenn ich mit vielen Umwandlungen konfrontiert werde, die Geschwindigkeit verringern und Speicher vergrößern. Gibt es etwas, das mir fehlt, oder sollten kleinere Datentypen wirklich nur mit anderen kleinen Datentypen verwendet werden?Konvertiert UInt8 (oder ähnliche Typen) zu Int den Zweck von UInt8?
Antwort
Sie sprechen ein paar Bytes pro Variable, wenn sie als UInt8
statt Int
speichern. Diese Datentypen wurden sehr früh in der Computergeschichte entwickelt, als das Gedächtnis in den niedrigen KBs gemessen wurde. Sogar die Apple Watch hat 512 MB.
Hier ist, was Apple sagt, in den Swift Book:
Sofern Sie nicht mit einer bestimmten Größe von Integer arbeiten müssen, immer
Int
im Code für ganzzahlige Werte verwenden. Dies unterstützt die Konsistenz und Interoperabilität des Codes. Selbst auf 32-Bit-Plattformen kannInt
einen beliebigen Wert zwischen -2.147.483.648 und 2.147.483.647 speichern und ist für viele Ganzzahlbereiche groß genug.
Ich benutze UInt8
, UInt16
und UInt32
hauptsächlich in Code, der mit C. beschäftigt Und ja, hin und her Umwandlung ist ein Schmerz im Nacken.
- 1. Seltsame Typumwandlung beim Hinzufügen von int zu uint8?
- 2. Umwandlung von UInt8 zu String in swift
- 3. Golang: convert uint8 bespannen
- 4. Vektor uint8 bespannen
- 5. Convert uint8 * std :: string
- 6. uint8 zeigt seltsame Zeichen
- 7. Convert UInt8 Array in String
- 8. Wie UInt8 Byte Array in String in
- 9. Konvertieren von UIImage zu UInt8 Array in Swift
- 10. Numpy aus string (Differenz von uint8 und uint16) [Die Kombination von zwei uint8 Werte zu einem uint16 Wert]
- 11. Nicht definierte Funktion oder Methode für Eingabeargumente vom Typ 'uint8'.
- 12. Schnelle absolute Differenz zweier uint8 Arrays
- 13. Swift Bit-Array Bytes Array (UInt8 Array)
- 14. Unterschied zwischen [] uint8 && [] Byte (Golang Slices)
- 15. Swift: füllen Daten in unsafeMutablePointer von UInt8 Typ funktioniert nicht
- 16. Elegantere Art, nach Mustern in diesem uint8-Array zu suchen
- 17. String Wert UnsafePointer <UInt8> Funktionsparameter Verhalten
- 18. Python, OpenCV: Erhöhung der Bildhelligkeit ohne überlaufendes UINT8-Array
- 19. Was ist der Unterschied zwischen UInt8 und uint8_t
- 20. Warum sind MATLAB uint8 Wert und Uint16 Werte unterschiedlich
- 21. Sind liest und schreibt für uint8 in Golang Atom?
- 22. Swift Array [UInt8] mit Bitwise-Operator funktioniert nicht?
- 23. Python: Verwirrung zwischen den Typen und dtypes
- 24. Lassen Sie Matlab eine Warnung ausgeben, wenn Sie ein Double in ein Uint8 konvertieren und umgekehrt?
- 25. Caffe Python Layer für die Eingabe, setzen Sie den Datentyp auf Uint8
- 26. Wie konvertiert man von TimePrimitive zu int?
- 27. Wie zu speichern und abrufen Byte-Array [UInt8] in sqlite3-Datenbank mit BLOB in swift?
- 28. Wie konvertiert man von Int zu Double?
- 29. Was ist der Zweck von anonymen Typen?
- 30. Geben Sie benutzerdefinierte Cast-Typen zu Basistypen ein