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
Klotzkopp Geschrieben 5. August 2002 Geschrieben 5. August 2002 Da gibts mehrere Möglichkeiten. Wie liest Du die Zahl denn ein?
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".
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]
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
Shadax Geschrieben 6. August 2002 Geschrieben 6. August 2002 ok, full ack! ... aber mal ehrlich: mit meiner Lösung kann man viel besser angeben ;-)
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden