Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9301

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

$
0
0

.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で動作するかはわかりません。


Viewing all articles
Browse latest Browse all 9301

Trending Articles