首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BITCOUNT宏所需解释

BITCOUNT宏所需解释
EN

Stack Overflow用户
提问于 2010-01-05 22:31:04
回答 1查看 848关注 0票数 4

有人能解释一下这是怎么回事吗?

代码语言:javascript
复制
#define  BX_(x)         ((x) - (((x)>>1)&0x77777777)                    \
                             - (((x)>>2)&0x33333333)                    \
                             - (((x)>>3)&0x11111111))


#define BITCOUNT(x)     (((BX_(x)+(BX_(x)>>4)) & 0x0F0F0F0F) % 255)

澄清:

理想情况下,答案将从以下几个方面开始:

宏:"BX_“从传递的数字中减去三个值。

这三个值代表:

  1. XXXXX
  2. 耶耶
  3. 祖兹

这允许BITCOUNT()按以下方式工作.

干杯,

大卫

EN

回答 1

Stack Overflow用户

发布于 2010-01-05 23:02:28

正如约翰斯从精彩的钻头缠绕式黑客页面中引用的那样,Athlon™64和Opteron™处理器软件优化指南在第179和180页上对该算法进行了出色而详细的描述--对应于PDF的195页和196页。

还描述了相同的想法和一些替代解决方案以及它们的相对性能:此页

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2009623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档