Einzelnen Beitrag anzeigen

Diablo9876

Registriert seit: 25. Jun 2003
35 Beiträge
 
Delphi 7 Personal
 
#1

Countbits fuer intel und non-intel bits.

  Alt 15. Jan 2005, 19:31
Hallo zusammen, habe folgenden code, jetzt moechte ich den aber so umschreiben das er fuer intel und non-intel(BIG-endian) bits zu gebrauchen ist.
Auserdem moechte ich eine Bitrange einbauen: Startbit --> Endbit statt 0 -- > Size.
Hat jemand irgendeine Ahnung wie?
Delphi-Quellcode:
function CountBitsSet(P: Pointer; Count: Cardinal): Cardinal;
const
  lu : packed array[0..15] of Byte = (0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4);
var
  b: Byte;
begin
  Result := 0;
  while Count > 0 do
  begin
    b := PByte(P)^;
    // lower Nibble
    Inc(Result, lu[b and $0F]);
    // upper Nibble
    Inc(Result, lu[b shr 4]);

    Dec(Count);
    Inc(PByte(P));
  end;
end;
Schonmal recht herzlichen Dank.
Gruss Diablo
  Mit Zitat antworten Zitat