2 stellige Zahl zerteilen

Gast #995786
Hallo Leute,

ich suche eine Idee um eine 2 stellige Variable (vom DS18S20) zu 
zerteilen und in 2 einzelne Variablen (1stellig) zu speichern.

Ich will von einem DS18S20 die Temperatur lesen (klappt soweit) und sie 
auf ein 2stelliges 7Segment Display jeweils über 2 BCD zu Sieben Segment 
Decoder ausgeben.

Ich hätte mir folgendes überlegt:

Temperatur / 10 = Zehnerstelle

Temperatur - (10*Zehnerstelle) = Einerstelle
#995792
Das geht, falls deine Temperatur eine Integer Variable ist.

z.B

int Temperatur =74 ;
int Zehnerstelle;
int Einerstelle;

Zehnerstelle = Temperatur / 10 ;  (Ergebnis = 7, da keine 
Nachkommastellen bei Int. gehen.)

Einerstelle = Temperatur - (10* Zehnerstelle) ;  ( Ergebnis = 4)


oder mit modulo arbeiten
#995793
Patrick wrote:
> Temperatur - (10*Zehnerstelle) = Einerstelle
Welche Programmiersprache? In C wäre das eher
1
Einerstelle = Temperatur % 10;

Es täte übrigens gut, wenn die Fragensteller hier mal die Forenregeln 
lesen könnten, bevor sie auf "Absenden" klicken!
#995795
Wenns schon BCD ist, kannst ja auch bisschen maskieren und shiften:

Zehner = (Variable & 0xF0) >> 4;
Einer = Variable & 0x0F;

wenn du übrigens die Einerstelle berechnen willst, kannst du auch den 
Modulo-Operator verwenden:

Einer = Temperatur % 10.

Schönen Gruss

Mist - Johannes, warst schneller :-D
Gast #995801
Danke für eure Antworten das Forum hab ich schon durchsucht und auch 
schon einen Thread gefunden wegen einer 4er Stelle.

Da ich vorhin erst nach endlosen Ausprobieren meinen Temperatursensor 
fertig habe und die 7 Segmentdisplays auch werd ich morgen dann erst das 
ganze zusammenfügen.
#995967
Patrick wrote:
> k.A. zumind. meine einfachen Rechnungen müssten doch ähnlich sein?
Wieso müssten die das? Ich weiß nicht, ob BASCOM für die 
Modulo-Operation auch den %-Operator verwendet, aber die 
Wahrscheinlichkeit, dass es das nicht tut, ist groß! Und in Assembler 
sieht das sowieso ganz anders aus. Und genau deshalb ist es essentiell 
wichtig, dass man die Programmiersprache angibt!

Antwort schreiben

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