So verwende ich C und ich habe 6 Arten von Befehlsnummern wie 0-5, wollen 3 von ihnen in Kombination zu nehmen, und speichern Sie die Kombination in Einzelbyte. Das Problem ist also, wie kann ich diese Zahlen kodieren? Wenn ich zum Beispiel binäre Codierung verwende, also 5 ist 101, dann kann ich nicht 555 speichern, da 101101101 9 Bits hat und ein Byte nur 8 hat. Vielen Dank für Ihre Aufmerksamkeit.Komprimieren 3 Anzahl Daten in einem Byte
Antwort
Behandle die drei Zahlen als eine dreistellige Zahl Basis-6, und seinen Wert berechnen:
value = num1 * 36 + num2 * 6 + num3
num1 = value/36
num2 = (value/6) % 6
num3 = value % 6
Der Wert im Bereich von 0 bis 215 sein wird, so paßt es in einem Byte.
Perfekte Antwort, danke – zpwpal
Ein tangentialer Kommentar. Wenn Sie dies viel tun müssen (vielleicht für eine Farbtabelle) und Sie finden, dass/und% langsam sind: Sie könnten eine LUT zum Decodieren verwenden; oder mit etwas Vorsicht können Sie vielleicht die Division durch Multiplizieren und Schiefschalten approximieren (es muss nur genau genug sein, um für diese 216 Werte zu arbeiten). – NickJH
- 1. komprimieren 4 Byte Gleitkommadaten auf 1 Byte
- 2. Qt qzip-Daten komprimieren
- 3. Entpackte Daten in Erlang komprimieren
- 4. Ionic 3 Bild komprimieren
- 5. Get Byte [] aus Dataset und komprimieren
- 6. Komprimieren ein Byte-Array in Java und Dekomprimieren in C
- 7. Java Android konvertieren Bild byte [] ohne komprimieren und konvertieren byte []
- 8. Komprimieren komprimieren Rich Text Feld
- 9. Nur in Mobile View komprimieren Bootstrap 3
- 10. Komprimieren eines Byte-Array-Bilds ohne Skalierung mit .Net C#
- 11. Werte aus einem Byte-Array in Swift 3
- 12. Swift 3: Wie konvertiert man Byte-Array in Daten?
- 13. SQL in mySQL komprimieren
- 14. Komprimieren und Dekomprimieren von Daten über Sockets
- 15. Überprüfung UTF-8-Datentyp 3-Byte oder 4-Byte Unicode
- 16. Liste der byte [] zu einem großen byte []
- 17. Liste komprimieren <Image> in einem Zip
- 18. PGP komprimieren und verschlüsseln
- 19. Daten in 1 Byte codieren
- 20. Extrahieren Float von Byte-Daten
- 21. Ist die Anzahl der Bits in einem Byte gleich der Anzahl der Bits in einem Typ-Zeichen?
- 22. Wie 2, 2 und 3 Bits aus einem Byte
- 23. MongoDB erhalten die 3-Byte-Zähler von einem ObjectId
- 24. Komprimieren von Vermögenswerten in Ruby on Rails 3
- 25. Verbleibende Bytes von einem Byte [] zu einem neuen vollen Byte []
- 26. Python Wave-Byte-Daten
- 27. GZIP-Komprimierung zu einem Byte-Array
- 28. Python 3 - Anzahl der Buchstaben in einem codierten String
- 29. Komprimieren von Daten aus der Datenbank
- 30. Datenrahmen zusammenfassen/komprimieren
Sie können das nicht tun. Die Anzahl der möglichen Kombinationen (343) übersteigt 256. –
Sie benötigen immer mindestens drei Bits, um 6 Symbole darzustellen, sodass Sie nicht drei verschiedene Symbole in einem einzigen Byte darstellen können. – user0042
Sorry 0-5, 6 Art des Symbols – zpwpal