Binär Zahl in dezimal Zahl umwandeln
-
Wie kann ich eine binäre Zahl in eine dezimale Zahl umwandeln.
Habe ein Beispiel gefunden, das mir eine dezimale Zahl in eine Binäre Zahl umwandelt aber wie geht das anderstherum:
Hier mal die Funktion:string binaer_ausgeben(unsigned int zahl) { //Wandelt eine deziamle Zahl in eine binäre zahl um AnsiString binaer; string bin; char test[9]; for(int i=2*sizeof(unsigned int);i;--i) { binaer = binaer + IntToStr(("%d",(zahl>>(i-1))&1)); } bin = binaer.c_str(); return bin; }
-
Ich denke, mit ein bisschen Nachdenken schaffst du das auch ganz allein, meinst du nicht auch? (Überleg doch mal, was die einzelnen Ziffern einer Binärzahl bedeuten und dann halt dich an dein Beispiel.)
der oli
-
Ich bekomms einfach nicht hin!
-
Ich liebe solche kommentare!
sollte aber trotzdem nicht so schwer sein dir einen tip zu geben.
die binäre zahl steht als string zur verfügung, oder?
so wie "1001000" jede stelle hat eine wertigkeit -
...128 64 32 16 8 4 2 1.
ganz einfach könntest du mit substring arbeiten und bei einer "1" die wertigkeit dazuzählen zu der zuvor auf null gesetzten integer (dezimalzahl). Es gibt sicher noch andere möglichkeiten, vielleicht sogar was fertiges in bcb aber finden muss man es erst mal
also packmers!
-
ohne zu testen:
AnsiString sBin = "100101"; unsigned int iDec = 0; int iWert = 1; for (int i = sBin.Length()-1; i>=0; i--) { if (sBin.c_str()[i] == '1') { iDec += iWert; } iWert *= 2; }