uint32_t ist nur uint16_t

OP #1190610
hi leute nach lange rum gucken ist mir folgendes aufgefallen
[c]
uint32_t memtemp;

memtemp=0x1869F;

sprintf(buffer, "%6i", memtemp);
[c]
gibt mir statt 99999 -> 31073 aus.

bei 9999 funzt es noch einwandfrei.. mein gedanke war jetzt kann das 
sein das er nur mit 16 bit arbeiten kann?
Die Option "i" kennzeichnet einen (signed) int, und der geht nunmal nur 
von -32768...32767. Schau mal in die Bibliotheksdoku. Du brauchst 
erstens mal kein "i", sondern ein "u", denn Du möchtest einen 
vozeichenlosen Wert ausgeben. Außerem muss da zusätzlich noch ein 
"l" mit rein, damit es ein unsigned long wird...

EDIT:
Oha, wieder mal viiiel zu lahm...
OP
Hi danke schon mal für die vielen Antworten hab mal folgendes getestet


memtemp=99999;

sprintf(buffer, "%6ul", memtemp);


Ergebnis: 34463

=)
was könnte noch falsch sein? sizeof = 2? was ist damit gemeint. bin noch 
ein Anfänger


danke schon mal
Gast
Karl heinz Buchegger wrote:
> An dieser Stelle
>
>
1
>   memtemp=0x1869F;
2
>
>
> ist das F nicht so prickelnd. Du willst ganz sicher keine Floating Point
> Zahl in ihrer Hex-Repräsentierung angeben.

Ist egal, hier zählt F nicht als Float-Endung, sondern als Ziffer. Aber 
'L' kann man sehr wohl anhängen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.