Binärstring in dezimalen Integer wandeln
Konvertierung in C
Hallo,
ich habe einen String bzw. array of char in dem ein 8bit langer Binärwert steht. Diesen brauche ich als Integer mit dem ich Rechnen kann, also von
Vielen Dank für Eure Hilfe
Steve
Hallo,
ich habe einen String bzw. array of char in dem ein 8bit langer Binärwert steht. Diesen brauche ich als Integer mit dem ich Rechnen kann, also von
00001000
zu 8. Einfach atoi() funktioniert nicht, ist mir auch klar. Gibt es eine Funktion die das kann?Vielen Dank für Eure Hilfe
Steve
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 45568
Url: https://administrator.de/contentid/45568
Ausgedruckt am: 26.11.2024 um 06:11 Uhr
5 Kommentare
Neuester Kommentar
Moin r6cdr,
wie wäre es mit bin2dec(binarystr) ?
Davon gibt es -zig Beispiel-Implementierungen auch in den Math.lib's (ist so eine typische Erstes-Lehrjahr-Aufgabe).
Eins von Hunderttausenden an Strategiebeispielen zum Selberhäkeln ist hier.
[Edit] Und ein Beispiel, dass Du mit nur zwei Änderungen übernehmen könntest, findet sich hier
Kernstück:
[/Edit]
Gruß Biber
wie wäre es mit bin2dec(binarystr) ?
Davon gibt es -zig Beispiel-Implementierungen auch in den Math.lib's (ist so eine typische Erstes-Lehrjahr-Aufgabe).
Eins von Hunderttausenden an Strategiebeispielen zum Selberhäkeln ist hier.
[Edit] Und ein Beispiel, dass Du mit nur zwei Änderungen übernehmen könntest, findet sich hier
Kernstück:
#include <stdio.h>
int bin2dec(char *dec);
int main(void){
.....
/*rest of code*/
return 0;
}
int bin2dec(char *dec){
int x=0, temp,total=0;
while(dec[x]!='\0' || dec[x]!='\n'){
if(dec[x]=='1'){
temp=pow(x,2);
total+=temp;
x++;
}
if(dec[x]=='0'){
continue;
}
}
}
Gruß Biber
Moin DaSam,
gut aufgepasst...
Das war ja nur eine der zitierten Implementierungen.
In einem normalen beaverproofed environment würde ich natürlich auch eine Funktion "int bin2dec( char *dec, bool msb_first)" verwenden.
Und dann sinngemäß mit einer for(..) statt einer while()-Schleife so vorgehen:
[Nur Skizze, keine einzige Zeile getestet..]
Gruß
Biber
gut aufgepasst...
Das war ja nur eine der zitierten Implementierungen.
In einem normalen beaverproofed environment würde ich natürlich auch eine Funktion "int bin2dec( char *dec, bool msb_first)" verwenden.
Und dann sinngemäß mit einer for(..) statt einer while()-Schleife so vorgehen:
if (msb_first)
{ for (i=0; i<strlen; i++) {
if(dec[i]=='1'){
temp=pow(i,2);
total+=temp;
i++;
}
} else {
{ for (i=0; i<strlen; i++) {
if(dec[i]=='1'){
temp=pow(strlen(i,2)-i,2);
total+=temp;
i++;
}
}
...
[Nur Skizze, keine einzige Zeile getestet..]
Gruß
Biber