jjzjj

bitCount

全部标签

java - `bitCount()`的 `bitLength()`和 `BigInteger`有什么区别

bitCount()的描述和bitLength()相当神秘:publicintbitCount()Returnsthenumberofbitsinthetwo'scomplementrepresentationofthisBigIntegerthatdifferfromitssignbit.Thismethodisusefulwhenimplementingbit-vectorstylesetsatopBigIntegers.Returns:numberofbitsinthetwo'scomplementrepresentationofthisBigIntegerthatdifferf

c++ - 计算多个整数的位...有更快的方法吗?

我有一个由4个long组成的数组,我想计算给定范围内设置位的数量。这是我当前正在使用的函数(其中bitcount(uint64_t)是一个内联asm函数,它给出参数中设置的位数):unsignedcount_bits(constuint64_t*long_ptr,size_tbegin,size_tend){uint64_tstart_mask=~((1L=0&&begin=64&&begin=128&&begin我发现这段代码的性能非常好,但我想知道我是否可以做些什么来让它更快,或者重新设计算法是否可以提高性能。 最佳答案 我已经

c++ - BITCOUNT 宏需要解释

谁能解释一下这是如何工作的?#defineBX_(x)((x)-(((x)>>1)&0x77777777)\-(((x)>>2)&0x33333333)\-(((x)>>3)&0x11111111))#defineBITCOUNT(x)(((BX_(x)+(BX_(x)>>4))&0x0F0F0F0F)%255)澄清:理想情况下,答案将按照以下方式开始:宏:“BX_”从传入的数字中减去三个值。这三个值代表:XXXXX年年年ZZZZZ这允许BITCOUNT()如下工作......干杯,大卫 最佳答案 BX_(x)的输出是每个十六进制数

c++ - 何时使用并行计数 - 当内存有问题时使用 MIT HAKMEM 进行位计数?

比特计数可以通过多种方式完成,例如。带有设置位迭代器、未设置位迭代器、带有查找表或并行计数的预计算位。正如我通过搜索网络发现的那样,当未设置位较少时,未设置位迭代器速度很快,而设置位迭代器则相反。但是什么时候应该使用并行计数,尤其是MITHAKMEM(见下文)?它看起来相当快,尽管可能比查找表慢。就速度而言,它总是比设置/未设置位更好吗?除了速度和内存之外,还有其他关于选择哪一个的问题吗?intBitCount(unsignedintu){unsignedintuCount;uCount=u-((u>>1)&033333333333)-((u>>2)&011111111111);ret

c++ - 计数位数 : How does this line work ? n=n&(n-1);

这个问题在这里已经有了答案:n&(n-1)whatdoesthisexpressiondo?[duplicate](4个答案)关闭6年前。我需要一些解释这个特定行是如何工作的。我知道这个函数计算的是1的位数,但是这一行究竟是如何清除最右边的1位的呢?intf(intn){intc;for(c=0;n!=0;++c)n=n&(n-1);returnc;}有没有人可以简单的给我解释一下或者给出一些“证明”?

mysql - 比较 MySQL 中的二进制值

假设你有两个二进制值001011001111如何获取MySQL中不同位的个数?我试过了SELECTBIT_COUNT(BINARY001011^BINARY001111)这将返回6,而在此示例中我需要一个返回1的解决方案。 最佳答案 SELECTBIT_COUNT(CONV('001011',2,10)^CONV('001111',2,10)) 关于mysql-比较MySQL中的二进制值,我们在StackOverflow上找到一个类似的问题: https://

.net - 使用 .NET 中的 BITCOUNT 等 Redis 位图操作?

Redis位图操作类似SETBIT,GETBIT,BITCOUNT和BITOP对于某些场景看起来很有趣,比如分析。但是这些可以从任何可用的.NETRedis驱动程序访问吗,比如ServiceStack.Redis?我一直在浏览ServiceStack.Redis的源代码,它似乎提供了对SETBIT和GETBIT的支持,但我没有看到任何提及BITCOUNT或BITOP的内容。那么,是否有任何.NETRedis驱动程序允许我使用像BITOP这样的操作?如果没有,我可以使用任何驱动程序向Redis发送“原始”命令吗? 最佳答案 Books

.net - 使用 .NET 中的 BITCOUNT 等 Redis 位图操作?

Redis位图操作类似SETBIT,GETBIT,BITCOUNT和BITOP对于某些场景看起来很有趣,比如分析。但是这些可以从任何可用的.NETRedis驱动程序访问吗,比如ServiceStack.Redis?我一直在浏览ServiceStack.Redis的源代码,它似乎提供了对SETBIT和GETBIT的支持,但我没有看到任何提及BITCOUNT或BITOP的内容。那么,是否有任何.NETRedis驱动程序允许我使用像BITOP这样的操作?如果没有,我可以使用任何驱动程序向Redis发送“原始”命令吗? 最佳答案 Books

java - 优化 Long.bitCount

我有一个程序正在对Long.bitCount()进行大量调用,如此之多以至于它在一个CPU内核上占用了33%的周期。有没有比SunJDK版本更快的实现方式?我试过了:Thisalgorithm(我认为这正是JDK的实现方式)查找28和222之间的各种大小的表(一次查看几位并添加结果)但我没有比使用手动展开循环(大约27%的CPU)的216条目查找表做得更好的了。这还能如何针对Java进行优化?注意:这个问题是关于Java特定的优化,但是thissimilar(language-agnostic)question还有很多其他算法。 最佳答案

java - 优化 Long.bitCount

我有一个程序正在对Long.bitCount()进行大量调用,如此之多以至于它在一个CPU内核上占用了33%的周期。有没有比SunJDK版本更快的实现方式?我试过了:Thisalgorithm(我认为这正是JDK的实现方式)查找28和222之间的各种大小的表(一次查看几位并添加结果)但我没有比使用手动展开循环(大约27%的CPU)的216条目查找表做得更好的了。这还能如何针对Java进行优化?注意:这个问题是关于Java特定的优化,但是thissimilar(language-agnostic)question还有很多其他算法。 最佳答案
12