문제

Bitpacked 메시지를 처리하는 TCP 기반 애플리케이션에서 작업 중입니다. 의미 : 전송/수신 된 메시지는 바이트 정렬되지 않습니다. 예를 들어 3 비트는 필드 1을 나타내며, 여기서 19 비트는 필드 2를 나타낼 수 있습니다. 내 질문은, 바이트 세트를 가져 와서 바이트 내에서 임의의 비트를 설정/얻을 수있는 C# 라이브러리를 아는 사람이 있습니까? C/C ++에서 유사한 유틸리티를보고 생성했지만 100% C# 솔루션이 필요하며 휠을 다시 재발견하고 싶지 않습니다.

Bitarray 클래스를 보았지만 임의의 비트를 참조 할 수는 없습니다.

도움이 되었습니까?

해결책

체크 아웃 이 CodeProject 솔루션 -C#에서 호출 가능한 오픈 소스 관리 비트 스트림 클래스입니다.

다른 팁

나는 당신이 원하는 것을 제공하는 BCL 클래스를 모릅니다. 그러나 Bitwise Operations (Shift, or, ...)를 사용하여 관심 분야를 추출 할 수 있습니다.

예를 들어, 크기가 5 비트의 크기로 비트 2에서 시작하는 필드를 얻으려면 다음과 같습니다.

int extract = (source & 0x7C) >> 2;
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top