LoginSignup
0
0

More than 3 years have passed since last update.

.NET Standard 2.0 でSystem.Numerics.BitOperationsを使う

Last updated at Posted at 2021-01-10

.NET Core 3.0から、System.Numerics.BitOperationsクラスが追加されています。
このクラスには、下記のようなビット操作を行うメソッドがあります。

  • LeadingZeroCount
  • Log2
  • PopCount
  • RotateLeft
  • TrailingZeroCount

これらのメソッドはIntrinsicsを使って実装している(依存している)ため、.NET Frameworkなどの環境で使用できるバックポートNugetパッケージがありません。

しかし、これらのメソッドにはIntrinsicsが使えない環境用にフォールバック実装があります。

従って、常にフォールバック実装を使用すれば、.NET Standard 2.0でも使用できるようになります。

というわけで、MITライセンスのBitOperations.csをコピペ&細工しましょう。(ライセンスに従って取り扱う必要はがあります。)
#if ディレクティブで無効にするだけです。

したものがこちらです。

一応Nugetパッケージも用意してみましたが、使用するアセンブリに組み込んでしまったほうがいいでしょう。

なお、Unityで動作するかはわかりません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0