@bit4bit;
Delphi-Quellcode:
PROCEDURE Test1;
var Wert2 : Integer;
begin
Wert2 := Integer((2 shl 32) div Wert);
Ergebnis := Integer(((A*x + B*Y + C*Z) * Wert2) shr 32);
Ergebnis2 := Integer(((A*x2 + B*Y2 + C*Z2) * Wert2) shr 32);
Ergebnis3 := Integer(((A*x3 + B*Y3 + C*Z3) * Wert2) shr 32);
end;
Und welche Ergebnisse erwartest du ?
Zur ersten Zeile "Wert2 := Integer((2 shl 32) div Wert);" :
2 shl 32 ergibt 2, weil um 32 mod 32 (=0) Bits verschoben wird.
Also wird Wert2 in der Regel 0 sein und damit werden auch die Ergebnisse alle = 0 sein.