Ergebnis 1 bis 3 von 3

Thema: elsen's persönlicher Fragethread zu C/C++

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #2
    1. Wie sollte die Fehlermeldung ausgegeben werden? Errorhandling funktioniert üblicherweise über den Rückgabewert. Wobei es hier eigentlich nicht um das geht.
    2. Der Wert von c ist nicht -33 sondern 4294967266. Du müsstest beim printf schon den richtigen Buchstaben verwenden und %d ist für signed, für unsigned int ist %u.
    3. Du fragst dich wieso das geht. Nun der binäre Wert von -45 ist 0b10000000000.......101101. Wobei dies auch der binäre Wert für 4294967251 ist. Also bitweise gesehen unterscheidet sich eine unsigned Variable nicht von einer signed, jedoch bei der Interpretation. Z. B. bei einem Vergleichsoperator wird dann der richtige Wert genommen. Beispiel:
    int a = 4294967251;
    unsigned int b = 4294967251;
    Nun gilt:
    a<0 und b>0,
    denn a kann gar keine so grosse Zahl speichern (eigentlich ja eben schon, aber man nimmt das erste Bit für das Vorzeichen). B hat etwa den doppelten Bereich, aber eben nur im positiven Wertebereich.
    scanf weiss nicht was du für Parametertypen übergibst (glaub ich zumindest) und liest diese aus deinem Formatierungsstring, also wenn du nun bei der Ausgabe %u verwendest, wird auch kein negativer Wert herauskommen, jedoch auch nicht das von dir gewünschte Ergebnis in diesem Falle. ^^

    Geändert von Drakes (22.10.2008 um 21:48 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •