- Beiträge
- 15.414
- Reaktionspunkte
- 4.043
-> Hier kostenlos registrieren
Mir wurde am anfang dword gesagt -> beides möglich??
Ja, es ist beides möglich, ich habs mal probiert. Mit DInt ist die Eingabe am Input des FC einfacher, ab DW#16#7FFFFFFF (größte DINT) wird dann so oder so in der Variablentabelle bei Einstellung DEZ immer eine Negative Zahl bei Addition angezeigt.
DW#16#7FFFFFFF
+
DW#16#00000002
=
DW#16#80000001
--> L#-2147483647 (mit Vorzeichen) (das ist so, weil die DINT "überläuft")
oder
--> 2147483649 (ohne Vorzeichen)
Ich bin mir im Moment nicht sicher, die Vorzeichengeschichte und DWord/DInt sind eigentlich eher ein Problem der Darstellung auf dem Bildschirm. Ob man ein Rechenergebnis als Zahl größer 2147483647 oder als neagtive Zahl interpretiert hängt letztlich davon ab, was man braucht.
Wenn ich da falsch liege korrigiert mich bitte, hab darauf noch nie zu viele Gedanken verschwendet.
Ist hier kopieren von werten aus DB in temp-var gemeint?
Summand_1, Summand_2 sind IN
Ergebnis OUT
Du legst hintereinander 3 Temp-Var an
Summand_1_temp, Summand_2_temp, Ergebnis_temp
Die Input kopierst du in die Temp, dann kannst du mit AR1 und dem Offset alle 3 Variablen adressieren, der Ergebnis_temo zum Schluß in die Out kopieren.
Code:
L 32;
L #Schleifenzaehler;
-I ;
+AR1 ;
AR1 := AR1 + (32 - #Schleifenzähler)
(Onkel macht das anders, der rechnet in jeder Schleife AR1 := AR1 + P#0.1, und baut immer auf dem AR1 aus der vorhergehenden Schleife auf. Ich rechne das AR1 jedesmal am Anfang der Schleife neu aus. Beides führt zum Ziel.)
Der Schleifenzähler beginnt ja bei 32 und wird dann von Loop bis 0 runtergezählt. Die duale Berechnung beginnt aber bei 0 und wird bis Bit 32 aufwärts durchgeführt.
Was fehlt denn noch alles bei der schleife von onkel dagobert?
XOR-verknüpfung von s1,s1 und altem übertrag und...?
Onkel hat das mit AR1 und AR2 gemacht, das geht auch.
Und er hat das AR1 und AR2 etwas anders hochgezählt für die Erhöhung der Bitnummer.
Außerdem fehlt die Berechnung des jeweils neuen Übertrages, darauf bist du ja oben eingegangen, ist in dem Wiki-Beitrag ja schön zu sehen.
Zuletzt bearbeitet: