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

本文关键字:int 数组 表示 一个 获取 | 更新日期: 2023-09-27 18:27:45

有没有一种方法可以在c#中以位表示int?

1  = 00001
20 = 10100

等等。

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

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

转换.ToString(value,base)

将32位带符号整数的值转换为指定基中的等效字符串表示形式。指定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 }

您也可以考虑使用BitArray。

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