Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

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

Re: Unterschiedliches Verhalten bei Bitverschiebung (C# / De

  Alt 21. Jun 2009, 15: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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat