C#에서 Buffer.GetByte() 메서드 사용하기
C#에서 Buffer.GetByte() 메서드를 사용하면 배열에 저장된 데이터를 바이트 단위로 하나씩 읽을 수 있습니다. 이 메서드는 지정한 인덱스 위치에 있는 단일 바이트 값을 반환하며, 정수형 배열처럼 각 요소가 여러 바이트로 구성된 경우에도 내부 바이트까지 세밀하게 확인할 수 있습니다.
배열 선언
먼저 예제에서 사용할 정수형 배열을 선언합니다.
int[] arr = { 3, 4, 12 };이제 반복문과 함께 Buffer.ByteLength()와 Buffer.GetByte() 메서드를 활용해 배열 전체의 바이트를 순차적으로 출력해 보겠습니다.
for (int i = 0; i < Buffer.ByteLength(arr); i++) {
Console.WriteLine(Buffer.GetByte(arr, i));
}여기서 Buffer.ByteLength(arr)는 배열의 총 바이트 수를 반환합니다. int 타입은 32비트(4바이트)이므로, 3개의 요소를 가진 배열은 총 12바이트가 됩니다.
전체 코드
using System;
using System.Text;
public class Demo {
public static void Main() {
int[] arr = { 3, 4, 12 };
// 바이트 배열을 순회하며 각 바이트 출력
for (int i = 0; i < Buffer.ByteLength(arr); i++) {
Console.WriteLine(Buffer.GetByte(arr, i));
}
}
}실행 결과
3 0 0 0 4 0 0 0 12 0 0 0
결과 해석
출력 결과를 보면 각 정수 값(3, 4, 12) 뒤에 0이 세 번씩 출력되는 것을 확인할 수 있습니다. 이는 C#의 int 타입이 리틀 엔디안(little-endian) 방식으로 메모리에 저장되기 때문입니다. 즉, 하위 바이트부터 차례대로 저장되므로 값 자체는 첫 번째 바이트에 위치하고 나머지 3개의 상위 바이트는 0으로 채워집니다.
이처럼 Buffer.GetByte() 메서드는 배열의 내부 바이트 표현을 검사할 때 유용하게 활용할 수 있으며, 직렬화, 이진 데이터 처리, 디버깅 등 다양한 상황에서 활용도가 높습니다.