public void BitRoundtripTest() { byte[] bitarray = new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, }; byte[] testByteArray = BitUtility.BitArrayToByteArray(bitarray, false); Console.WriteLine($"test in 1: {BitUtility.BytesToBitString(testByteArray)}"); Console.WriteLine($"test in 1: {BitUtility.BytesToHex(testByteArray)}"); foreach (byte b in bitarray) { Console.Write(b); } Console.WriteLine(); byte[] testBitArray = BitUtility.ByteArrayToBitArray(testByteArray, false); testByteArray = BitUtility.BitArrayToByteArray(testBitArray); Console.WriteLine($"test in 2: {BitUtility.BytesToBitString(testByteArray)}"); Console.WriteLine($"test in 2: {BitUtility.BytesToHex(testByteArray)}"); foreach (byte b in testBitArray) { Console.Write(b); } Console.WriteLine(); }
public byte[] SetSubfragmentConfiguration(byte[] variantCodingValue, VCSubfragment subfragment) { byte[] variantBits = BitUtility.ByteArrayToBitArray(variantCodingValue); List <byte> result = new List <byte>(variantBits.Take(ByteBitPos)); variantBits = variantBits.Skip(BitLength + ByteBitPos).ToArray(); byte[] sfToSet = BitUtility.ByteArrayToBitArray(subfragment.Dump).Take(BitLength).ToArray(); result.AddRange(sfToSet); result.AddRange(variantBits); return(BitUtility.BitArrayToByteArray(result.ToArray())); }