正如 Rob Kennedy 所建议的,这里有适用于 32 位和 64 位 Delphi IDE 的函数。
function GetBitCount(num: integer): integer;
asm
POPCNT eax, num
end;
function GetBitCount(num: Int64): integer;
asm
POPCNT rax, num
end;
Run Code Online (Sandbox Code Playgroud)
编辑:这是 32 位和 64 位 Delphi 兼容版本
{$IF CompilerVersion < 23} //pre-XE2
NativeInt = integer;
{$IFEND}
function GetBitCount(num: NativeInt): integer;
asm
{$IFNDEF CPUX64}
POPCNT eax, num
{$ELSE CPUX64}
POPCNT rax, num
{$ENDIF CPUX64}
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
891 次 |
| 最近记录: |