Forum: PC-Programmierung Wieso wird long variable nicht richtig angezeigt?


von Erik (Gast)


Angehängte Dateien:

Lesenswert?

Wa ist genau der Fehler? Die Long Variable hat 4 Byte Größe also 32 Bit. 
Das ist bei unsigned ein Zahlenbereich von 2^32 - 1 also 4294967296.

Trotzdem scheint eine Übershreitung stattzufinden. Wieso?
1
#include <stdio.h>
2
#include <stdlib.h>
3
4
int main()
5
{
6
    unsigned long a = 4294967294;
7
8
    printf("a = %ld\n", a);
9
10
    return 0;
11
}

von Michael D. (nospam2000)


Lesenswert?

Erik schrieb:
>     printf("a = %ld\n", a);

probiers mal mit
  printf("a = %lu\n", a);

%ld => long integer
%lu => unsigned long integer

  Michael

von Dirk B. (dirkb2)


Lesenswert?

Erik schrieb:
> Wa ist genau der Fehler?

Dass du die Warnungen vom Compiler ignorierst (oder nicht anzeigen läßt, 
weil der Warnlevel zu niedrig ist)

von Erik (Gast)


Lesenswert?

Funktioniert jetzt danke!

Beitrag #6216571 wurde von einem Moderator gelöscht.
von Coda (Gast)


Lesenswert?

Systemgewinner schrieb im Beitrag #6216571:
> solchee fragen haben hier wirklich nichts verloren. wir sind hier
> nicht
> auf der hauptschule

Jepp, vor allem, weil die Ausgabe "-2" ist, aber im Programm von 
"unsigned" die Rede ist bei der Deklaration.

von MaWin (Gast)


Lesenswert?

Coda schrieb:
> weil die Ausgabe "-2" ist, aber im Programm von
> "unsigned" die Rede ist

Also Hauptschulen Compiler? :-<<<

Wie seid ihr drauf, zu Ostern?

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
Noch kein Account? Hier anmelden.