1

c#でintの表現をビット単位で表示する方法はありますか?

すなわち

1  = 00001
20 = 10100

BitConverter を使ってみましたが、うまくいきませんでした。これは簡単なはずですが、解決策が見つかりません!

4

3 に答える 3

7

Convert.ToString(値, ベース)

32 ビットの符号付き整数の値を、指定された基数の等価の文字列表現に変換します。ベースには 2 を指定します。

于 2013-08-14T01:26:00.547 に答える
2

linq を使用したワンライナーは次のとおりです。

var myint = 20;
var bytes = Enumerable.Range(0, 32).Select(b => (myint >> b) & 1);
// { 0, 0, 1, 0, 1, 0 ... }

もちろん、これは逆の順序です。交換するには、次のようにします。

var myint = 20;
var bytes = Enumerable.Range(0, 32).Select(b => (myint >> (31 - b)) & 1);
// { ..., 0, 1, 0, 1, 0, 0 }
于 2013-08-14T01:26:50.443 に答える
1

BitArrayを使用して調べることもできます。

var array = new BitArray(BitConverter.GetBytes(1));
于 2013-08-14T01:29:11.183 に答える