获取表示c#中int的位数组

时间:2013-08-14 01:22:42

标签: c# bit-manipulation bit

有没有办法在c#中显示int的表示形式?

1  = 00001
20 = 10100

我尝试过使用BitConverter但没有运气。这应该很简单,但我找不到解决方案!

3 个答案:

答案 0 :(得分:7)

Convert.ToString(value, base)

将32位有符号整数的值转换为指定基数中的等效字符串表示形式。为基数指定2。

答案 1 :(得分:1)

这是使用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 }

答案 2 :(得分:1)

您还可以查看使用BitArray

var array = new BitArray(BitConverter.GetBytes(1));