Veröffentlicht 4. August 200223 j 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
5. August 200223 j folgenden Befehl gebe ich ein int dual; scanf("&i",&dual); hier belibt mir bei einer eingabe von "0000 0011" die "11".
5. August 200223 j 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]
5. August 200223 j Warum das Rad 2x erfinden? bin2val kannst Du auch durch einen Aufruf der entsprechenden Bibiliotheksfunktions ersetzen: printf("%i\n", strtol(binstr,NULL,2)); Nic
6. August 200223 j ok, full ack! ... aber mal ehrlich: mit meiner Lösung kann man viel besser angeben ;-)
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.