2017-07-14 105 views
0

这个问题非常接近Bit array to Byte array in JAVA,我想将下列位数组转换为字节数组?如何解析位数组到C#中的字节数组?

int[] bits = {1, 0, 1, 0, 1, 1, 0, 1, 0, 1};

但不同的答案是相关的问题,我想存储的结果大端这应该是:

0xB5 0x02

如何我想做到这一点?谢谢!

+0

你是问如何int'转换''到ushort'?你可以分享的任何代码尝试? – KernelMode

+0

位数组不是C#类型也许你的意思是字节?或System.Collections.BitArray? – Jimbot

+0

对于我的表达感到抱歉,我重新修正了我的问题。 – BarryLib

回答

2

试试这个代码:

byte[] result = bits.Select((x, i) => new {byteId = i/8, bitId = i % 8, bit = x}) 
    .GroupBy(x => x.byteId) 
    .Select(x => (byte) x.Reverse().Aggregate(0, (t, n) => t | n.bit << n.bitId)) 
    .ToArray(); 

+0

感谢您的回复。你的代码似乎不符合需求。例如,当我的bits []是'1 1 0 0 0 0 0 0'我想结果是'3'而不是'192' – BarryLib

+0

@BarryLib请参阅我的更新 –

+0

好的代码,谢谢! – BarryLib