Zitat:
a*256^3 + b*256^2 + c*256^1 + d*256^0
Da hier mit Exponenten zur Basis 2 gerechnet wird und ich mal vermute das a,b,c,d nur Bytes sind geht diese Operation viel schneller mit
Delphi-Quellcode:
var
I: Cardinal;
begin
I := (A shl 24) + (B shl 16) + (C shl 8) + D;
// bzw.
I := (A * $1000000) + (B * $10000) + (C * $100) + D;
// bzw.
I := (A * 256 * 256 * 256) + (B * 256 * 256) + (C * 256) + D;
// $1 = 1 = 256^0 = 2^0
// $100 = 256 = 256^1 = 2^8
// $10000 = 256 * 256 = 256^2 = 2^16
// $1000000 = 256 * 256 * 256 = 256^3 = 2^24
// und X shl Y = X * 2^Y
end;
Power() bzw. IntPower() sind für dieses Problem viel zu mächtige Geschosse
Gruß Hagen