Ich bin zwar kein Anfänger mehr mit Java, aber ich hab keine bessere Überrubrik gefunden, als diese hier (hier sind auch schon die meisten anderen Fragen zu dem Thema). Aber zu meinem Problem:
Ich habe ein Programm geschrieben (oder bin noch dabei) zum Aufbau und zur simulation von elektrischen Schaltungen und als ich dann die IO-Mathoden geschrieben habe ist bei mir ein Problem aufgetaucht. Ich habe, da nicht alle Informationen Byte- sondern Bit-Weise gespeichert werde, eine ArrayList mit Bit-Objekten (in diesem Object wird der Wert als boolean gespeichert, aber die Metthoden und Konstruktoren lassen einen zugang mit Zahlen, also 1 und 0 zu), in die dann die entsprechenden Werte geschrieben, zu byte-Werte formatiert und in die Datei geschrieben werden. Das klappt auch mit allen Varibale-Typen und Objecten super. Nur das erste Byte ist fehlerhaft!!!
Statt: 10001000 (136) schreibt er:
00111110 (63)
Das sind zwei 4-Bit lange Zahlen, aber danach kommen auch noch Zahlen und auch 4-Bit-Lange und die werden ohne Probleme in die Datei eschrieben (alle zahlen werden von den gleichen Methoden aus generiert, formatiert und geschrieben).
Ich hoffe das ist nicht zu kompliziert und ihr könnt mir helfen.
Edit: daher weiß ich, dass der richtig formatiert hat
und da gibt der mit noch die 163 aus, in der Datei steht aber ein 3F(Hex) bzw. 63(10) bzw. 00111110(2)
Ich habe ein Programm geschrieben (oder bin noch dabei) zum Aufbau und zur simulation von elektrischen Schaltungen und als ich dann die IO-Mathoden geschrieben habe ist bei mir ein Problem aufgetaucht. Ich habe, da nicht alle Informationen Byte- sondern Bit-Weise gespeichert werde, eine ArrayList mit Bit-Objekten (in diesem Object wird der Wert als boolean gespeichert, aber die Metthoden und Konstruktoren lassen einen zugang mit Zahlen, also 1 und 0 zu), in die dann die entsprechenden Werte geschrieben, zu byte-Werte formatiert und in die Datei geschrieben werden. Das klappt auch mit allen Varibale-Typen und Objecten super. Nur das erste Byte ist fehlerhaft!!!
Statt: 10001000 (136) schreibt er:
00111110 (63)
Das sind zwei 4-Bit lange Zahlen, aber danach kommen auch noch Zahlen und auch 4-Bit-Lange und die werden ohne Probleme in die Datei eschrieben (alle zahlen werden von den gleichen Methoden aus generiert, formatiert und geschrieben).
Ich hoffe das ist nicht zu kompliziert und ihr könnt mir helfen.
Edit: daher weiß ich, dass der richtig formatiert hat
Code:
System.out.println(value);
writer.writer(value);