안녕하세요. C# WPF를 개발하는 중 막히는 부분이 있어 글을 쓰게 되었습니다.
다름이 아니라 C, C++의 경우 Struct Bit 필드가 존재하여 Bit 구조체를 적절히 선언하여 입력 받은 데이터( Packet )를 Parsing하여 데이터를 처리하는 경우가 많았습니다.
C# WPF로 관련 내용을 구현하려 하니 C#에서 bit structure 지원이 되지 않아 보통 실무에서는 어떤 식으로 Bit단위 데이터를 처리하는지 궁금해 졌습니다.
짧은 기간 C# 경험으로 찾을 수 없는 부분이라 ㅠㅠ
혹시 알고 계신 부분이 있으시거나, 저와 같은 고민과 해결 방법을 찾으신 분이 있으시면 공유 해주시면 감사하겠습니다!!
뿐만아니라 Socket 통신을 통해 받은 Packet Data를 적절히 Parsing하고 처리할 수 있는 팁을 알고 계신분이 있으시면 공유 부탁드리겠습니다.
// 비트 필드를 취해야 하는 데이터가 '2비트 모드', '4비트 명렁어', '10비트 데이터'라고 가정
using System.Collections.Specialized;
ushort raw = 0b01_0010_1000000001;
var dataSection = BitVector32.CreateSection(0b1111111111);
var commandSection = BitVector32.CreateSection(0b1111 , dataSection);
var modeSection = BitVector32.CreateSection(0b11, commandSection);
var data = new BitVector32(raw);
Console.WriteLine(data);
Console.WriteLine($"Mode = {data[modeSection]}");
Console.WriteLine($"Command = {data[commandSection]}");
Console.WriteLine($"Data = {data[dataSection]}");