LCD - Anzeige Immer Func. "ltoa()" oder erst Var-Groesse vergleichen

Gast #1852624
Hi zusammen,
ich erstelle mir gerade eine kleine Lib zur Ansteuerung meines 
LCD-Displays.

Nun hatte ich erst Probleme mit großen Zahlen, hab da aber hier im Forum 
gelesen, dass itoa() nur bis 16 bit geht und man hierfür ltoa() nimmt 
:-)

Jetzt meine Frage:
Soll ich erst prüfen, ob die Zahl in den 16-Bit Bereich reinpasst und 
dann entweder itoa oder ltoa nehmen, oder einfach immer ltoa?

Wenn ich die Breite der Variable prüfe, würde mir gerade nur einfallen
1
if(zahl <= 0xFF)
2
{
3
}else{
4
}

Oder gibts da eine elegantere Lösung, quasi wie viele Register gerade 
von der Variable benutzt werden?

Vielen Dank und ein schönes Wochenende
Marcel
Gast
Marcel schrieb:
> Soll ich erst prüfen, ob die Zahl in den 16-Bit Bereich reinpasst und
> dann entweder itoa oder ltoa nehmen, oder einfach immer ltoa?

Unverständlich?
Wenn du ein int ausgeben willst -> itoa
wenn du ein long ausgeben willst -> ltoa
:-)
Gast
Ich will quasi eine Funktion machen, die sowohl 8-Bit aber auch bis zu 
32-Bit Werte ausgibt :-)

Mein Prototyp lautet void
1
 LCD_Display_Number(uint32_t number)

Wenn meine Zahl, die ich darstellen will, 8-Bit Breit ist, wird sie ja 
als 32-Bit Zahl in der Funktion gehandelt. Soll ich dann immer noch ltoa 
verwenden, oder immer erst prüfen wie groß die Zahl ist und dann ggf. 
itoa verwenden?

Vielen Dank für die schnelle Rückmeldung :)

Grüße
Marcel
Gast
Marcel schrieb:
> Ich will quasi eine Funktion machen, die sowohl 8-Bit aber auch bis zu
> 32-Bit Werte ausgibt :-)

Naja, in höheren Programmiersprachen wie c++ gibt dafür überladene 
Funktionen, in C benutzt man typischerweise für jeden Typ ne eigene 
Funktion.
(z.B. puts, putc)

> Mein Prototyp lautet void LCD_Display_Number(uint32_t number)
> Wenn meine Zahl, die ich darstellen will, 8-Bit Breit ist, wird sie ja
> als 32-Bit Zahl in der Funktion gehandelt.

Platzverschwendung, aber wems gefällt.

> Soll ich dann immer noch ltoa
> verwenden, oder immer erst prüfen wie groß die Zahl ist und dann ggf.
> itoa verwenden?
Aufwand gegen Nutzen gleich Null, lieber immer ltoa benutzen, spart die 
Casts, die nötig werden um die Warnungen zu ignorieren.

:-) Meine Meinung, keep it simple, stupid and short. :-)
Gast
O.k Danke :-)

Floh schrieb:
> Platzverschwendung, aber wems gefällt.

Ja klar, nur hab ich nen Impulszaehler gebaut, wodurch meine Variablen, 
die ich anzeigen möchte, sich eben von 8-Bit bis 32-Bit erstrecken. Ich 
könnte jetzt noch eine übergeordnete Funktion schreiben, die checkt, wie 
groß die Zahl ist, und dann die eine (bis 16-Bit Breite) oder andere 
(bis 32-Bit Breite) Funktion aufruft - doch glaub ich, dass hier Aufwand 
und Nutzen sich kompensieren und ich dann immer gleich mit Kanonenkugeln 
auf Spatzen schieße....

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 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.