POPCNT在Delphi XE / XE2 64bit中
发布时间:2020-12-15 09:47:15 所属栏目:大数据 来源:网络整理
导读:如何在Delphi XE或XE2下使用非常快速的Intel POPCNT指令在16/32/64位字内实现1位计数?是否存在可直接访问此指令的库例程?有人可以写一个演示asm部分来说明它的使用吗? 最后,64位Delphi有哪些选项(没有可用的asm)? 提前致谢 ? 解决方法 随着Rob Kennedy的
如何在Delphi XE或XE2下使用非常快速的Intel POPCNT指令在16/32/64位字内实现1位计数?是否存在可直接访问此指令的库例程?有人可以写一个演示asm部分来说明它的使用吗?
最后,64位Delphi有哪些选项(没有可用的asm)? 提前致谢 ? 解决方法
随着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; 编辑: {$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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |