Datei Binär einlesen und Bytes/Bits in Text darstellen
-
Dragonfire schrieb:
d = ( ( x >> i ) & 1 );vielleicht so
d += ('0' + ( ( x >> i ) & 1 ));
-
bringt leider nichts
-
Guggigugg !
Check this out Joe:
#include <iostream> #include <vector> using namespace std; int main(void) { string datei_inhalt = "ABC"; vector <char> bintext; for( int i =0; i < datei_inhalt.size(); i++ ) { for ( int j = 0; j < 8; j++ ) { cout << ((datei_inhalt.at(i) >> j)&1); // Hier gibts Bits zu sehen bintext.push_back(((datei_inhalt.at(i) >> j)&1)); } cout << endl; // Buchstaben Byteweise für die Anzeige. } return 0; }
-
Dragonfire schrieb:
So, habe die Methode etwas abgeändert und so implementiert:
AnsiString TForm1::char2bin( unsigned char x ) { AnsiString d; for ( int i = CHAR_BIT-1; i >= 0; --i ) { d = ( ( x >> i ) & 1 ); } }Und übergebe der Methode den Parameter 88.
Jedoch scheint der Zurückgegebene String leer zu sein.Deine Methode liefert keinen Wert zurück und weist zudem 8 mal der Variablen 'd' das Ergebnis des Ausdrucks zu. Macht irgendwie nicht viel Sinn.
string TForm1::char2bin( unsigned char x ) { string bin; for(int i = 7; i >= 0; i--) { bin += ( x >> i & 1 ) ? "1" : "0"; } return bin; }So sollte es gehen. (Davon ausgehend, dass AnsiString ^= string)
EDIT: Es heißt natürlich x >> i, und nicht i >> i ^^
-
das mit den 8mal war nur nen Test...
Aber thx, ich werds mal ausprobieren.
-
خِنْزِير
Oink, oink? Was bedeutet der Kringel darüber?
-
so, nun gehts schon besser mit:
String TForm1::char2bin( unsigned char x ) { String bin; for(int i = 7; i >= 0; i--) { bin += ( i >> i & 1 ) ? "1" : "0"; } return bin; }Jedoch erhalte ich als Ergebnis von 88 binär : 00000000
-
Tja, du solltest halt nicht blind Quelltext kopieren.

Der Fehler ist ein Tippfehler meinerseits:
bin += ( i >> i & 1 ) ? "1" : "0";Siehst du? i >> i
Daher die ganzen Nullen.
Es muss natürlichbin += ( x >> i & 1 ) ? "1" : "0";heißen.
-
stimmt

jedoch wird man sehr leicht dazu verleitet dem hirn mal ne Pause zu gönnen :p

-
thx, funzt!

-
Konrad Rudolph schrieb:
خِنْزِير
Oink, oink? Was bedeutet der Kringel darüber?
das ist das ringelschwänzchen

-
Wo ist denn eigentlich der Hund der eine ? Der unten rum wund, der an der Leine ?
-
Kann man den Code auch optimieren?
Also ich lese die Datei char-weise ein und lasse jedesmal die chars in Binär umrechnen und anzeigen, jedoch dauert das bei einer 1mb datei schon recht lange...
-
Dragonfire schrieb:
Kann man den Code auch optimieren?
Klar, indem Du die Datei in einem Rutsch einliest und dann diese Daten umrechnest.
-
dachte ich mir schon, nur dann hätt ich das prob, das die PorgressBar nicht beim Einlesen mitläuft
-
Dragonfire schrieb:
dachte ich mir schon, nur dann hätt ich das prob, das die PorgressBar nicht beim Einlesen mitläuft
machs wie microsoft und lass die progress bar in nem eigenen thread mit random werten laufen. und sobald das laden fertig ist, schickt es nen event an die progressbar, um sie auf 100% zu schieben... wenn sie da nich eh schon seit 5 minuten steht
