Robert B.: c Mathematik über Binary

Beitrag lesen

Moin pl,

printf sieht nur den Speicherinhalt. Ob 4 Bytes Speicher ein unsigned int, ein signed int, ein float oder ein char[4] Array repräsentieren, kann es nicht wissen.

Auch klar, %i %d %u sind ja nur Formate für die Ausgabe.

Nö, das sind Formate, wie die Funktionsparameter zu interpretieren sind. Für die Formatierung gibt es zusätzliche Flags.

Und %d nehme ich wenn ich zusätzlich zu einem integer das Vorzeichen sehen will. Wenn ich alles mit %u ausgebe, sehe ich ja das Vorzeichen nicht.

Nein, %d und %i bedeuten, dass das entsprechende Argument als int zu interpretieren ist, während %u für einen unsigned steht.

Ich finde, uint32_t host = -3 ; sollte eigentlich der Compiler beanstanden. Meinst Du nicht auch?

Wenn du solch eine Prüfung haben möchtest, sind die „plain“-Datentypen von C das Falsche für dich. Das ist der Nachteil des effizienten Datenzugriffs.

Viele Grüße
Robert