我正在使用LibnoDave库连接到西门子PLC的应用程序中工作。我得到一个Dword值,然后将其转换为int值,但现在我需要将该int值转换为位数组。例如,我将数字62000作为int值,它在二进制中是1111001000110000。我需要那个值。如何做到这一点?
发布于 2017-11-16 15:12:29
如果您想用二进制表示uint,请尝试使用Convert类:
uint source = 62000;
string result = Convert.ToString(source, 2);
Console.WriteLine(result);结果
1111001000110000如果您想要System.Collections.BitArray实例:
using System.Collections;
using System.Linq;
...
uint source = 62000;
BitArray array = new BitArray(BitConverter.IsLittleEndian
? BitConverter.GetBytes(source)
: BitConverter.GetBytes(source).Reverse().ToArray());
// Test
string result = string
.Concat(array
.OfType<bool>()
.Reverse()
.Select(item => item ? 1 : 0))
.TrimStart('0');
Console.WriteLine(result);结果
1111001000110000 发布于 2017-11-16 19:49:23
问题是,在DWORD中,我只需要第二个单词。例如,如果我收到11111111111111110000000000000000,我只需要这个Dword的1111111111111111。
https://stackoverflow.com/questions/47323546
复制相似问题