繁体   English   中英

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

[英]Get an array of bits that represent an int in c#

有没有办法显示C#中int的位表示形式?

1  = 00001
20 = 10100

等等

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

Convert.ToString(值,基数)

将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));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM