首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C#中将双字转换为位数组

在C#中将双字转换为位数组
EN

Stack Overflow用户
提问于 2017-11-16 15:05:32
回答 2查看 1.1K关注 0票数 0

我正在使用LibnoDave库连接到西门子PLC的应用程序中工作。我得到一个Dword值,然后将其转换为int值,但现在我需要将该int值转换为位数组。例如,我将数字62000作为int值,它在二进制中是‭1111001000110000‬。我需要那个值。如何做到这一点?

EN

回答 2

Stack Overflow用户

发布于 2017-11-16 15:12:29

如果您想用二进制表示uint,请尝试使用Convert类:

代码语言:javascript
复制
  uint source = 62000;

  string result = Convert.ToString(source, 2);

  Console.WriteLine(result);

结果

代码语言:javascript
复制
  1111001000110000

如果您想要System.Collections.BitArray实例:

代码语言:javascript
复制
  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);

结果

代码语言:javascript
复制
  1111001000110000 
票数 2
EN

Stack Overflow用户

发布于 2017-11-16 19:49:23

问题是,在DWORD中,我只需要第二个单词。例如,如果我收到11111111111111110000000000000000,我只需要这个Dword的1111111111111111。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47323546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档