kostenloser Webspace werbefrei: lima-city


Was sind alles Zahlen

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    toolz

    Kostenloser Webspace von toolz

    toolz hat kostenlosen Webspace.

    Das mag etwas lächerlich klingen, aber ich habe in etwas C-Kode herumgestöbert und bin beispielsweise auf die Zahl
    0xFFFFFFFF00000000LL
    gestoßen, habe aber keine Ahnung, was "L" sein soll. Anscheinend gibt es auch "U" - aber maximal drei mal in einer Zahl, ebenso, wie ein P am Anfang einer Zahl.

    Was ist in C also noch alles eine Zahl?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo toolz,

    wenn Du irgendwo ein 'P' bzw. ein Suffix dreimal in einer Zahl gesehen hast, dann bitte ich Dich die Stellen zu posten, denn normalerweise geht sowas nicht.
    Im Allgemeinen gibt es drei Möglichkeiten eine Ganzzahl anzugeben:
    1234   -> kein Präfix oder Suffix, d.h. Dezimalsystem
    01234  -> 0 als Präfix, kein Suffix, d.h. Oktalsystem = 668 Dezimal
    0x1234 -> 0x als Präfix, kein Suffix, d.h. Hexadezimalsystem = 4660 Dezimal
    Jetzt hat der Compiler mehrere möglichkeiten diese Zahlen darzustellen. Normalerweise verwendet er einen vorzeichenbehafteten 32-Bit Integer, wenn die Zahl dafür zu groß ist, dann einen vorzeichenbehafteten 64-Bit Integer. Wenn man aber eine bestimmte Feldgröße oder Überlaufverhalten haben will, dann kommen die Suffixe ins Spiel.
    L   -> 32-Bit oder 64-Bit signed integer
    LL  -> 64 Bit signed integer
    U   -> 32-Bit oder 64-Bit unsigned integer
    UL  -> 32-Bit oder 64-Bit unsigned integer
    ULL -> 64-Bit unsigned integer
    Das kann vor allem bei Shift-Operationen wichtig sein, da bei signed integer Datentypen unter Umständen ein arithmetischer (höchstwertiges Bit bleibt unverändert) anstelle eines logischen Shifts verwendet werden kann.
    Im übrigen gibt es 'L' auch als Präfix für strings, damit die Zeichen durch 16-Bit Unicode dargestellt werden:
    wchar_t text[] = L"Hallo";


    Edit:
    Der Vollständigkeit halber auch noch die Fließkommazahlen:
    1.2F -> 32-Bit Fließkommazahl
    1.2  -> 64-Bit Fließkommazahl
    1.2L -> 80-Bit (x86) bzw. 96-Bit (x64) Fließkommazahl


    Beitrag zuletzt geändert: 16.8.2011 21:26:35 von darkpandemic
  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!