Supportnet / Forum / Anwendungen(Java,C++...)
C# BitArray
Frage
Hallo,
mit folgender Anweisung kann ich bei
C# ein Array aus Integer in ein Array von
Bit konvertieren
int[] iStatus = new int[1];
iStatus[0]= 4711;
BitArray baStatus = new BitArray(iStatus);
Gibt es eine Möglichkeit, das BitArray wieder in ein Int-Array zurückwandeln, wenn ja wie?
vielen Dank
Christoph
Antwort 1 von TheRealWhistler
Hi,
ich persönlich habe noch nie mit C# zu tun gehabt, mit Sicherheit wird es eine Klasse/Funktionalität geben welche das für dich erledigen könnte.
Wenn Ich jedoch jetzt keine Ahnung hätte welche Klasse das ist, würde ich klassisch vor gehen:#
Einfach manuell eine Binärzahl in eine Dezimalzahl konvertieren, indem du iterativ jede binärstelle in ihren dezimalen Wert konvertierts und aufsummierst:
Summe über n( 2 hoch n * xn )
wobei xn der Wert der n-ten Binärstelle ist, und n die nummer der Binärstelle in dem binären Wort( quasi die Bit-nummer)
also z.B:
4711(d) = 1001001100111(b)
und
1*2^12+0*2^11+0*2^10+1*2^9+0*2^8+0*2^7+
1*2^6+1*2^5+0*2^4+0*2^3+1*2^2+1*2^1+1*2^0(b)
= 4711(d)
die 0 mal 2 hoch n habe ich der Vollständigkeit halber mit hingeschrieben.
Ciao
Andreas
ich persönlich habe noch nie mit C# zu tun gehabt, mit Sicherheit wird es eine Klasse/Funktionalität geben welche das für dich erledigen könnte.
Wenn Ich jedoch jetzt keine Ahnung hätte welche Klasse das ist, würde ich klassisch vor gehen:#
Einfach manuell eine Binärzahl in eine Dezimalzahl konvertieren, indem du iterativ jede binärstelle in ihren dezimalen Wert konvertierts und aufsummierst:
Summe über n( 2 hoch n * xn )
wobei xn der Wert der n-ten Binärstelle ist, und n die nummer der Binärstelle in dem binären Wort( quasi die Bit-nummer)
also z.B:
4711(d) = 1001001100111(b)
und
1*2^12+0*2^11+0*2^10+1*2^9+0*2^8+0*2^7+
1*2^6+1*2^5+0*2^4+0*2^3+1*2^2+1*2^1+1*2^0(b)
= 4711(d)
die 0 mal 2 hoch n habe ich der Vollständigkeit halber mit hingeschrieben.
Ciao
Andreas

