这个问题非常接近Bit array to Byte array in JAVA,我想将以下位数组转换为字节数组?
int[] bits = {1, 0, 1, 0, 1, 1, 0, 1, 0, 1};
但答案不同的是相关问题,我想存储结果 big-endian 应该是:
0xB5 0x02
我想怎么做?谢谢!
答案 0 :(得分: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();