Platz sparen mit Integer to Bits

17/08/2008 - 13:47 von Bastie | Report spam
Hallo,

ich suche ein (gutes) Tutorial / Anleitung oder auch lesbaren
Quelltext für folgendes Problem.

Ich habe eine bestimmte Menge an Ganzzahlen und muss diese möglichst
platzsparend ablegen. Daher will ich nur die Bit-Anzahl nutzen, welche
ich benötige. Natürlich könnte ich eine Tabelle hinterlegen aber das
erscheint mir nicht der richtige Weg.
Ich suche daher eine elegante Möglichkeit meine Ganzzahlen
(entsprechend der höchsten Zahl) bitweise zu kodieren...

Beispiel:
Höchste Zahl: 3174
Maximale Bits = 12 (max. 4096)

Wer kennt / hat so etwas / weiß wo ich was entsprechendes finde

Danke
Sebastian
 

Lesen sie die antworten

#1 Thomas Scheidegger
17/08/2008 - 14:10 | Warnen spam
Hallo Sebastian


Ganzzahlen ... möglichst platzsparend ablegen.




ich kann mir im PC/Windows-Umfeld fast nicht vorstellen,
dass solches noch nötig ist.
Muss also schon extreme Gründe geben...

Und mache vorab mal eine statistische Analyse,
ob es sich wirklich lohnt.

Gewisse Ansàtze sind per:
System.Collections.BitArray
denkbar.
Alles weitere musst du wohl selber
mit klassischem Bit-zàhlen/schieben lösen.

Grundsàtzliches solltest
du aus C/C++ und Theorien
bis hin wie nur zB
http://de.wikipedia.org/wiki/Entropiekodierung
beziehen können.

Die allersimpelste (und ~performante)
Methode scheint aber auf Anhieb
zB ein grosses Byte-Array als Speicher,
wo mit dem MSB (als Flag) jeweils Folge-Bytes
zu (beliebig grossen) Integer-Zahlen
zusammengesetzt (shift) werden.
(Prinzip zB àhnlich bei UTF-8 Encoding)




Thomas Scheidegger - 'NETMaster'
http://dnetmaster.net/

Ähnliche fragen