Y
YoYo
Gast
Hallo!
Ich muss für die Uni ein Kompriemierungsprogramm mittels Huffman Algorithmus schreiben. Bin auch schon relativ weit. Jetzt bin ich allerdings an einer Stelle wo ich nicht mehr weiss wie ich das umsetzen soll: (ich versuche mal das Problem zu beschreiben ohne den ganzen Huffman Code zu erklären)
Ich habe ine Liste: in dieser stehen jeweils Objekte die einmal den numerischen Byte wert speicher sowie die länge der dafür benötigten bits.
Beispielobjekt 1:
private int wert = 10; // der numerische wert
private int BitLaenge = 4; //weil ja 10 binär dargestellt 1010 ist
Beispielobjekt2:
private int wert = 23; // der numerische wert
private int BitLaenge = 5; //weil ja 23 binär dargestellt 10111 ist
Eigentlich werden die int-werte aber ja mit 32 bit dargestellt das heisst der Wert 10 aus Beispielobjekt1
wäre 00000000000000000000000000001010.
Jetzt will ich mir aber einen Bytestream oder OutputStream mit den Bits füllen ohne die führenden nullen. Also wenn später Objekt 1 und Objekt2 gespeichert werden wird nur 101010111 gespeichert(jeweils die Binärwerte aber ohne die nullen.)
Habe mit dem shiftoperator schon die 1010 bei Objekt 1 ganz an den anfang geschrieben --> 1010000000....
aber jetzt muss ich den nächsten wert ja dann an die 4te stelle schreiben.
Bin ratlos wie man das machen soll?
Hoffe jemand konnte mir folgen?!?!
Danke schon mal!!
Ich muss für die Uni ein Kompriemierungsprogramm mittels Huffman Algorithmus schreiben. Bin auch schon relativ weit. Jetzt bin ich allerdings an einer Stelle wo ich nicht mehr weiss wie ich das umsetzen soll: (ich versuche mal das Problem zu beschreiben ohne den ganzen Huffman Code zu erklären)
Ich habe ine Liste: in dieser stehen jeweils Objekte die einmal den numerischen Byte wert speicher sowie die länge der dafür benötigten bits.
Beispielobjekt 1:
private int wert = 10; // der numerische wert
private int BitLaenge = 4; //weil ja 10 binär dargestellt 1010 ist
Beispielobjekt2:
private int wert = 23; // der numerische wert
private int BitLaenge = 5; //weil ja 23 binär dargestellt 10111 ist
Eigentlich werden die int-werte aber ja mit 32 bit dargestellt das heisst der Wert 10 aus Beispielobjekt1
wäre 00000000000000000000000000001010.
Jetzt will ich mir aber einen Bytestream oder OutputStream mit den Bits füllen ohne die führenden nullen. Also wenn später Objekt 1 und Objekt2 gespeichert werden wird nur 101010111 gespeichert(jeweils die Binärwerte aber ohne die nullen.)
Habe mit dem shiftoperator schon die 1010 bei Objekt 1 ganz an den anfang geschrieben --> 1010000000....
aber jetzt muss ich den nächsten wert ja dann an die 4te stelle schreiben.
Bin ratlos wie man das machen soll?
Hoffe jemand konnte mir folgen?!?!
Danke schon mal!!