Hallo, ich bin im C-Code über Formatangaben nach Werten bei Variablendeklarationen gestoßen. zB. u16 variable = 0x0008f; Was bedeutet das "f" und wie heißen diese Zusätze? Gibt es noch andere? Gruß Bert
es gibt noch a,b,c,d,und e und diese Buchstaben können auch am Anfang oder mittendrin stehen.
Bert schrieb: > Was bedeutet das "f" und wie heißen diese Zusätze? Da ist kein Zusatz. Das ist eine Zahl. Durch das Präfix 0x ist festgelegt, daß die Zahl in/hexadezimaler Notation/ angegeben wird.
Rufus Τ. F. schrieb: > Da ist kein Zusatz. Das ist eine Zahl. > > Durch das Präfix 0x ist festgelegt, daß die Zahl in/hexadezimaler > Notation/ angegeben wird. Das ist mir klar. Was macht das "f"? Teilt es dem Compiler etwas mit?
Bert schrieb: > Rufus Τ. F. schrieb: >> Da ist kein Zusatz. Das ist eine Zahl. >> >> Durch das Präfix 0x ist festgelegt, daß die Zahl in/hexadezimaler >> Notation/ angegeben wird. > > Das ist mir klar. Was macht das "f"? Teilt es dem Compiler etwas mit? Hirn einschalten! 0x8f = 0x8F. 10ct Stück gefallen?
Bert schrieb: > Was macht das "f"? Teilt es dem Compiler etwas mit? Ja. Bei Gleitkommazahlen schon. Da teilt es dem Compiler mit, dass es sich um eine "float"-Zahl handelt statt "double". Aber über die gültigen Ziffern bei hexadezimalen Zahlen solltest du nochmal meditieren …
> Das ist mir klar.
Sobald es dir klar wird wirst "Aua" schreien. :-)
Olaf
Bert schrieb: > Das ist mir klar. Was macht das "f"? Teilt es dem Compiler etwas mit? Schau mal wie 143 in Hexadezimal dargestellt wird. Vielleicht wird es so verständlicher?
Da die C-Freaks ,mit 0x eine folgende Hexzahl (Sedezimalzahl) ankündigen, verstehe ich das so, dass die Hex-Zahl 00008F gemeint ist, also dezimal 143. Natürlich ist es üblich, die Sedezimalziffer F groß zu schreiben, aber die C-Leute nehmen halt völlig willkürlich irgendwelche Tasten, und wenn ihnen die shift-Taste zu lästig ist, dann schreiben sie eben ohne shift. (Das zum Thema C-Syntax) Wenn das f irgendetwas andres bedeuten sollte, ist das wieder ein Beispiel dafür, dass die C-Syntax von irgendwelchen Idioten erarbeitet wurde.
Peter R. schrieb: > Natürlich ist es üblich, die Sedezimalziffer F groß zu schreiben Warum sollte das "natürlich üblich" sein? Beides (groß/klein) ist gleichermaßen üblich!
Nochmal gegenübergestellt. uint16_t = 0x12AB; --- Mit dem Prefix "0x" wird eine hexadezimale Zahl eingeleitet. Die zulässigen Ziffern sind: 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f. Das 'f' ist damit kein Suffix sondern eine Ziffer, auch wenn es ganz rechts steht. Um diesen Fall handelt es sich in Deinem Eröffnungspost. "Formatzeichen" hingegen sind die Zeichen die in einem printf oder scanf - "Formatstring" stehen, um anzugeben wie eine Zeichenfolge interpretiert werden soll. und uint16_t = 1234; --- Ohne jeden Prefix wird eine dezimale Zahl gekennzeichnet. Die zulässigen Ziffern sind: 0,1,2,3,4,5,6,7,8,9. Hingegen ist: float a = 30.0f; -- Ohne Prefix, wieder Dezimal mit den erwähnten Ziffern und einem zusätzlichen Punkt. Das 'f' ist keine Ziffer, sondern ein Suffix, der angibt, dass der Compiler die Zahl nicht als double sondern als float zu interpretieren hat.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.