PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ziffern aus einer Integer Variable "extrahieren"



coCo
17.05.2007, 15:03
Hi,
ich möchte zwei Ziffern aus einer Integer Variable extrahieren und in zwei Byte Variablen speichern. Also z.B: Integer Variable hat den Wert 123, dann möchte ich gerne in Byte1 den Wert 3 und in Byte2 den Wert 2 speichern.
Ich weiß leider nicht wie ich das machen soll. Mit dem Punktoperator darauf zugreifen geht net, da er dann das erste bzw. zweite Zeichen vom binären Wert und nicht vom dezimalen Wert der Zahl nimmt...

MfG

linux_80
17.05.2007, 15:42
Hallo,

Du könntest Die Zahl in einen String wandeln, und dann die Stelle die Du haben willst an der entsprechenden Stringposition herausholen :-k

siehe dazu Bascom-Hilfe unter STR() !

Netbird
17.05.2007, 17:08
Hallo,

du kannst mit der ganzahligen Division durch 10 bzw. 100 arbeiten (Ich weiß nicht, ob Bascom eine Rest-Operation mit modulo besitzt, das wäre noch einfacher). In deinem Beispiel mit a=123:

b=a\10 ergibt b=12
c=a - 10*b ergibt dann die letzte Stelle c=3

Andere Methode: Int bzw. frac (frac= Nachkommawert) benutzen:
b= a/10 ergibt b=12.3 , dann
c= frac(b) ergibt c=0.3
d= 10*c ergibt 3.

Spiel mal mit diesen Ideen, es geht sicher noch besser ...

coCo
17.05.2007, 21:09
Hi,
ich habs mit Modulo hingekriegt, danke für eure Hilfe.

Allerdings belegt die Berechnung 50% des Speichers meines TIny26 (macht aber nichts, da es im späteren Programm diese Berechnung nicht mehr geben wird, dient zur Zeit nur zu Debugzwecken).

MfG