Anzeige:
Ergebnis 1 bis 3 von 3

Thema: ULONG_MAX Wertbereich?

  1. #1
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255

    ULONG_MAX Wertbereich?

    Ich arbeite mich gerade durch c und habe ein testscript zum lesen der Datentypen geschrieben. Jedoch gibt mir ULONG_MAX ein -1 zurück.
    Was mach ich hier falsch?
    Zitat Zitat von Manpage limits.h
    {ULONG_MAX}
    Maximum value of type unsigned long.
    Minimum Acceptable Value: 4 294 967 295
    PHP-Code:
    /* long_limit.c */
    #include <stdio.h>
    #include <limits.h>
    int main(void) {
       
    printf("long-Wert mindestens : %ld\n"LONG_MIN);
       
    printf("long-Wert maximal    : %ld\n"LONG_MAX); 
       
    printf("unsigned long max.   : %ld\n"ULONG_MAX);
       
    printf("long benötigt %d Byte (%d Bit) Speicher\n"sizeof(long), sizeof(long) * CHAR_BIT);
       return 
    0;

    Code:
    ./long_limit
    long-Wert mindestens : -2147483648
    long-Wert maximal    : 2147483647
    unsigned long max.   : -1
    long benötigt 4 Byte (32 Bit) Speicher
    Geändert von undefined (03-10-2007 um 09:56 Uhr)
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  2. #2
    Registrierter Benutzer
    Registriert seit
    24.09.2005
    Beiträge
    66
    Das Problem ist dass %ld die Daten wieder als signed long interpretiert. Unsigned-Werte kann man mit u ausgeben, also hier mit %lu.

  3. #3
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Danke jetzt bekomme ich eine korrekte Ausgabe.
    PHP-Code:
    #include <stdio.h>
    #include <limits.h>
    int main(void) {
       
    printf("long-Wert mindestens : %ld\n"LONG_MIN);
       
    printf("long-Wert maximal    : %ld\n"LONG_MAX);
       
    printf("unsigned long max.   : %lu\n"ULONG_MAX);
       
    printf("long benötigt %d Byte (%d Bit) Speicher\n"sizeof(long), sizeof(long) * CHAR_BIT);
       return 
    0;

    Code:
    ./long_limit
    long-Wert mindestens : -2147483648
    long-Wert maximal    : 2147483647
    unsigned long max.   : 4294967295
    long benötigt 4 Byte (32 Bit) Speicher
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

Lesezeichen

Berechtigungen

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