Einzelnen Beitrag anzeigen

Robert Marquardt
(Gast)

n/a Beiträge
 
#7

Re: "0x0008" Was für ein Typ???

  Alt 31. Aug 2005, 09:53
Eine vorlaufende Null ist in C die Schreibweise fuer eine Oktalzahl. 017 ist also dezimal 15.
Das stammt noch aus der Zeit als die Rechner Schalter aussen hatten. Diese waren in Dreiergruppen fuer die binaere Eingabe von Oktalziffern gedacht.
Bei dem originalen K&R C waren sogar die Oktalziffern 8 und 9 erlaubt (09 = 011 = 9 dezimal). Das hat man dann bei ANSI C beseitigt.
Damit man Hexzahlen benutzen kann musste eine neue Schreibweise eingefuehrt werden. Es wurde das x bzw. X hinzugefuegt.

Der Grund ist ein besonders einfacher Parser. Kommt eine Ziffer so beginnt eine Zahl. Ist es eine 0 so beginnt eine Oktalzahl, sonst eine Dezimalzahl. Kommt dann ein x so ist es eine Hexzahl.

Alles in allem wurde hier einfach eine Funktion zum Parsen einer Dezimalzahl zweimal moeglichst primitiv erweitert und das Resultat als zur Sprache gehoerig erklaert.
  Mit Zitat antworten Zitat