본문 바로가기
Programming/C#

[C#] Byte를 Bit 배열로 변환 - Bit를 Byte로 변환

by 타임박스 2022. 4. 1.
반응형


✔ Byte to Bit arry

Bit to byte



 

1 Byte = 8 Bit 입니다.

그럼 1바이트를 비트로 변환하면 8개 Bit값으로 표현이 됩니다.

BitArray를 이용하여 간단하게 변환이 가능합니다.

BitArray를 사용하기 위해서는 using System.Collections 임포트해야합니다.

 

● Byte에서 BitArray로 변환

//임의의 3개의 바이트를 생성
byte[] _byte = new byte[3] { 5, 7, 9 };

//1바이트만 사용한다고 해서 아래처럼 사용하면 안됨. 배열을 넣어줘야됨
//byte _byte = 5; 

//BitArray에 byte 배열 넣어줌
BitArray bits = new BitArray(_byte);

//BitArray 길이 확인 > 예제 기준 : 3 * 8 = 24
Console.WriteLine(bits.Length);

//Bit값 확인
for (int i = 0; i < bits.Length; i++)
    Console.WriteLine(bits[i]);

 

● BitArray에서 Byte로 변환

- 위에서 변환했던 Bit를 다시 Byte의 배열로 변환하는 방법입니다.

//변환하기 위해 위의 예제를 기준으로 하겠습니다
byte[] _byte = new byte[3] { 5, 7, 9 };
BitArray bits = new BitArray(_byte);


//바이트 사이즈를 할당하기 위해 8로 나누어줌.. 왜냐! 1바이트는 8비트니깐
int size = bits.Length / 8;
byte[] bytes = new byte[size];

//카피해서 바이트 배열에 넣어줌, 시작인덱스는 0부터
bits.CopyTo(bytes, 0);

//잘들어갔는지 확인
for (int i = 0; i < bytes.Length; i++)
    Console.WriteLine(bytes[i]);

 

감사합니다.

반응형

댓글