Harry-Dirty Geschrieben 4. August 2002 Geschrieben 4. August 2002 Folgende Frage :marine ich geb in C eine Zahl(als Zweierkomplementär) ein. BSP: 0000 0111 und diese Zahl soll auch genau so ausgegeben werden. Gehts?? und wenn ja was tun???? gruß Harry :marine :marine Zitieren
Klotzkopp Geschrieben 5. August 2002 Geschrieben 5. August 2002 Da gibts mehrere Möglichkeiten. Wie liest Du die Zahl denn ein? Zitieren
Harry-Dirty Geschrieben 5. August 2002 Autor Geschrieben 5. August 2002 folgenden Befehl gebe ich ein int dual; scanf("&i",&dual); hier belibt mir bei einer eingabe von "0000 0011" die "11". Zitieren
Shadax Geschrieben 5. August 2002 Geschrieben 5. August 2002 Tja, die 11 von 00000011 bleibt, weil Du dezimal einliest. Du könntest aber in einen String einlesen und dann Zeichen für Zeichen abklappern, um von binär nach dezimal umwandeln. #include <stdio.h> int bin2val(const char *binary) { int val = 0; while(*binary) val = (val << 1) + (*binary++ == '1' ? 1 : 0); return val; } int main(void) { char binstr[128]; // should be big enough scanf("%s", binstr); printf("%i\n", bin2val(binstr)); return 0; } [/PHP] Zitieren
nic_power Geschrieben 5. August 2002 Geschrieben 5. August 2002 Warum das Rad 2x erfinden? bin2val kannst Du auch durch einen Aufruf der entsprechenden Bibiliotheksfunktions ersetzen: printf("%i\n", strtol(binstr,NULL,2)); Nic Zitieren
Shadax Geschrieben 6. August 2002 Geschrieben 6. August 2002 ok, full ack! ... aber mal ehrlich: mit meiner Lösung kann man viel besser angeben ;-) Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.