Forum: Algorithmen, Datenstrukturen und Klassendesign
by Theseus,
17. Sep 2020
Hallo Michael,
vielen Dank für den Hinweis! Vorzeichenerweiterung scheint da nötig - mal sehen, ob ich das hinbekomme. Ich brauche ja nicht alle Fälle aus dem Artikel zu berücksichtigen...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Theseus,
17. Sep 2020
Nee, ich möchte tatsächlich abs(z1-z2) = abs(z2-z1) bestimmen.
Mit meiner obigen Formel
result := z1 + not z2 + 1
bekomme ich das richtige Ergebnis, wenn z1 > z2 ist
Z.B.: 7 - 3 => 7 + 252 + 1 => 260
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Theseus,
17. Sep 2020
Danke für das Link, aber das hilft nicht wirklich. Was xor macht weiß ich schon, nur nicht wie ich es zur 'additiven Subtraktion' nutzen kann ;)
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Theseus,
17. Sep 2020
Sicher eine sehr einfache Frage - aber ich kriege es gerade nicht hin :oops:
Ich möchte abs(z1-z2) durch Addition mit Bit-Operatoren bestimmen.
function AbsDifferenz(z1, z2: byte): byte;
begin
result := z1 + not z2 + 1;
end;
Das funktioniert, solange z1 > z2 ist, aber nicht umgekehrt. Irgendwie erinnere ich mich, dass es eine xor-Formel dazu gab, aber ich finde die nicht...