Probleme mit printf vs. Datentyp



  • Hallo,

    Habe folgendes Code Problem:

    Ich möchte eine Variable im Bereich von 1-100000 auf ein LCD schreiben. Um dennoch mit dem Datentyp unsigned Int arbeiten zu können, multipliziere ich die Variable mit dem Faktor 2. Trotzdem erscheint auf dem LCD nie ein Zahl >65536, sondern zBsp bei 100'000 erscheint die differenz zu 65536.

    printf ("Frequenz A : %5uHz\n",user.freq_A*2);

    Definiere ich den Datentyp für die Ausgabe falsch ? oder was mache ich nicht richtig ?



  • freq_A ist vom Typ unsigned int? Falls ja: Mit einem unsigned int kannst du (auf einem 32Bit Rechner) Werte bis über 4 Milliarden (2^32-1) darstellen. Ich versteh nicht ganz, was das *2 soll...



  • Funktionierts damit?

    printf ("Frequenz A : %5luHz\n",user.freq_A);
    

    @interpreter
    Klingt eher so, als würde es sich um ein 16Bit-System handeln.



  • AJ schrieb:

    @interpreter
    Klingt eher so, als würde es sich um ein 16Bit-System handeln.

    Auch dann wäre das *2 irgendwie sinnlos



  • interpreter schrieb:

    AJ schrieb:

    @interpreter
    Klingt eher so, als würde es sich um ein 16Bit-System handeln.

    Auch dann wäre das *2 irgendwie sinnlos

    *zustimm* :).
    Ich bezog mich auch eher nur darauf ;):

    freq_A ist vom Typ unsigned int? Falls ja: Mit einem unsigned int kannst du (auf einem 32Bit Rechner) Werte bis über 4 Milliarden (2^32-1) darstellen.


Log in to reply