gpt4 book ai didi

java - .NET 相当于 Java 的 Integer.bitCount?

转载 作者:太空狗 更新时间:2023-10-29 22:58:18 25 4
gpt4 key购买 nike

有没有类似Java的<a href="http://download.oracle.com/javase/6/docs/api/java/lang/Integer.html#bitCount%28int%29" rel="noreferrer noopener nofollow">Integer.bitCount(int)</a>的方法或 <a href="http://download.oracle.com/javase/6/docs/api/java/lang/Long.html#bitCount%28long%29" rel="noreferrer noopener nofollow">Long.bitCount(long)</a> .NET Framework 中的任何位置?

(对于那些不熟悉这些 Java 方法的人)这也被称为:

  • Hamming Weight
  • 人口计数(在硬件中实现时通常称为 POPCNT。)

虽然there are plenty of implementations to be在网上找到的,我想知道是否有标准库实现。

我知道这不在 BitArray 中, UInt32BitConverter ,但也许某处隐藏了一个版本,例如在加密函数中。

最佳答案

此功能不在 .NET Framework 或 .NET Standard 中,但在 .NET Core 3.0 和更新版本中,因此包括 .NET 5.0 和更新版本,在 System.Numerics.BitOperations 下静态类,特别是方法

两者都返回 System.Int32,也就是 C# 中的 int

还有其他有用的操作:计算前导或尾随零、计算以 2 为底的整数对数以及执行位旋转(即循环移位)。

可能在核心库中这样做的最大好处/原因是您可以在不链接到非托管代码的情况下获得硬件加速,类文档证实了这一点:

Provides utility methods for intrinsic bit-twiddling operations. The methods use hardware intrinsics when available on the underlying platform; otherwise, they use optimized software fallbacks.

关于java - .NET 相当于 Java 的 Integer.bitCount?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5910154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com