Équivalent .NET de Integer.bitCount de Java?

Existe-t-il une méthode similaire à Integer.bitCount(int) ou Long.bitCount(long) de Java n’importe où dans le .NET Framework?

(Pour ceux qui ne connaissent pas ces méthodes Java), ceci est également appelé:

  • Hamming Poids
  • Nombre de population (souvent appelé POPCNT lorsqu’il est implémenté dans le matériel.)

Bien qu’il existe de nombreuses implémentations sur le Web, je me demandais s’il existait une implémentation de bibliothèque standard.

Je sais que ce n’est pas dans BitArray , UInt32 ou BitConverter , mais il y a peut-être une version cachée quelque part, par exemple dans une fonction crypto.

Ni les BitVector32 ni BitArray n’ont une telle méthode, donc je crois que cette méthode est en effet absente du framework.

Personnellement, je pense que ces classes ne sont de toute façon pas vraiment utiles car elles manquent beaucoup d’opérations naturelles. Je ne suis pas sûr de ce à quoi ils sont vraiment destinés. En l’état, leur utilité est très limitée.

Ces méthodes sont basées sur des algorithmes de Hacker’s Delight. Vous pouvez télécharger le code C pour eux ici .