HonestAnnie
Level-1
- Beiträge
- 10
- Reaktionspunkte
- 1
L #ARC_NEXT_NR
L 2
/I //Teile durch 2
T #ARC_NEXT_NR
Hallo,
ich habe eine Frage zur Division von INT Zahlen.
Mein Programm sieht so aus:
Code:L #ARC_NEXT_NR L 2 /I //Teile durch 2 T #ARC_NEXT_NR
Die Variable soll durch 2 geteilt und das Ergebnis in die Variable geschrieben werden. Dabei kommt jedoch nur Murks raus. Die SPS errechnet jedoch bei #ARC_NEXT_NR=49 ein Ergebnis von "1103364096". Ich hätte aber gerne 24 (Zahlen hinterm Komma wegschneiden).
Vielen Dank für jeden konstruktiven Beitrag.
Ich benutze momentan:
312C
Step 7 V5.33
Hallo,
müsste ich dann nicht zumindest 0 herausbekommen? 49/2 = 24 /2 = 12 usw. ?
Was darauf schließen lässt dass Dein "#ARC_NEXT_NR unmöglich eine INT-Var sein kann.Hallo,
ich habe eine Frage zur Division von INT Zahlen.
Mein Programm sieht so aus:
Code:L #ARC_NEXT_NR L 2 /I //Teile durch 2 T #ARC_NEXT_NR
Die Variable soll durch 2 geteilt und das Ergebnis in die Variable geschrieben werden. Dabei kommt jedoch nur Murks raus. Die SPS errechnet jedoch bei #ARC_NEXT_NR=49 ein Ergebnis von "1103364096". Ich hätte aber gerne 24 (Zahlen hinterm Komma wegschneiden).
Vielen Dank für jeden konstruktiven Beitrag.
Ich benutze momentan:
312C
Step 7 V5.33
L #ARC_NEXT_NR
SRW 1
T #ARC_NEXT_NR
Wenn Du einen Integerwert teilst, ist das Ergebnis aufgeteilt in das Ergebnis und den Divisionsrest. (HB-LB)
Wenn du dann dieses Ergebnis wieder in einem Wort abspeicherst, stehen dann halt in diesen beiden Bytes diese beiden Ergebnisse. Diese wieder als Integer interpretiert ergeben halt "seltsame" Ergebnisse....
Das ist definitiv Unsinn!@Grubba: Ja daran lag es. In den ersten 8Bit steht anscheinend der Rest der Division und in den zweiten das Ergebnis.
@johnij: alles blödsinn! da kommt null raus! fertig!
/quote]
Es geht nämlich darum zu erklären, woher das kommt
Ich habe mich daran gewöhnt, dass 4L=Motskiist
johnij
/I //Dividiere AKKU2-L durch AKKU1-L, speichere das Ergebnis in AKKU 1: AKKU1-L: Quotient, AKKU1-H: Divisionsrest
Es geht nämlich darum zu erklären, woher das kommt
Wenn Du einen Integerwert per -> /I teilst, ist das Ergebnis aufgeteilt in das Ergebnis und den Divisionsrest. (HB-LB)
Wenn du dann dieses Ergebnis wieder in einem Wort abspeicherst, stehen dann halt in diesen beiden Bytes diese beiden Ergebnisse. Diese wieder als Integer interpretiert ergeben halt "seltsame" Ergebnisse....
ein Totaler Blödsinn
*
L MW 10
L 2
/I
T MD 8
und wer ist jetzt der motski? ...boah johnij ... langsam reißt mir der geduldsfaden mit dir ...
so...topic:
wo steht denn das akku1-L ein byte ist? es ist ein wort, weil der akku1 eben ein doppelwort ist! zweimal 16 bit! und aufbauend darauf kannst du mit:
Code:* L MW 10 L 2 /I T MD 8
im MW 10 den Quotienten und im MW 8 den divisionsrest ablesen
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?