Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#17

Re: Unterschiedliches Verhalten bei Bitverschiebung (C# / De

  Alt 21. Jun 2009, 16:36
Delphi-Quellcode:
Function ArithmeticShiftRight2(i: Integer; Shift: Byte): Integer;
  Begin
    Result := (i shr Shift) or ((LongWord($FFFFFFFF) * LongWord(i shr 31)) shl (32 - Shift));
  End;
Das rechnet jetzt auch korekt (hatte beim letzen SHL eine Klammer vergessen und die Multiplikation nun ohne Vorzeichen rechnen lassen)

PS: @Apollonius: im positiven Bereich rechnet deines schon irgendwie richtig,
nur nicht mit negativen i bzw. a
$2B or not $2B
  Mit Zitat antworten Zitat