ich bin programmiere eigentlich hauptsächlich C, möchte aber diesmal ein Programm in Java schreiben, weil ich eine plattformunabhängige Soundlibrary brauche und die, die ich gefunden habe, alle nicht das gelbe vom Ei waren. Hoffe mein Problem ist nicht so trivial, dass ich mich lächerlich mache beim fragen.
Zum Problem:
Ich möchte gerne von beliebigen Daten eine Binäre Darstellung entsprechend des Speicherinhalts erhalten.
In C würde ich mein Problem wie folgt lösen:
char * get_binary(char * data_to_convert, size_t data_size) {
unsigned long i; // Zählervariablen
char j;
char * output_buffer = (char*)calloc(8*data_size+1, sizeof(char)); // Ausgabepuffer (8 Bit pro Byte, 1 Byte zusätzlich, um String mit 0 abzuschließen
for (i=0; i<data_size; i++) { // Für jedes Byte der Daten
char curbyte = data_to_convert[i];
for (j=1; j<9; j++) { // Für jedes Bit im aktuellen Byte
if ((curbyte ^ ((curbyte >> j) << j)) != 0) { // XOR mit dem nach links und rechts geschobenen Byte (alles rechts des aktuell interessanten Bits wird gelöscht)
output_buffer[i*8+j-1] = 'T'; // Wenn XOR nicht 0 ergibt, dann soll T (True) im Rückgabestring stehen
} else {
output_buffer[i*8+j-1] = 'F'; // Sonst F (false)
}
curbyte = (curbyte >> j) << j; // alles rechts vom aktuellen Bit im Byte killen
}
}
return output_buffer; // Rückgabestring auswerfen
}
Meine Frage: Wie mache ich das in Java? In C kann man ja jeden beliebigen Datentyp zu Char * bzw. zu Void * casten... nur in Java geht das soweit mir bekannt so nicht.
Hat jemand ne Idee?
Danke!
Dieser Beitrag wurde von Fenix bearbeitet: 03. August 2007 - 20:39

Hilfe
Neues Thema
Antworten
Nach oben



