C# Byte 구조체란?
C#의 Byte 구조체는 8비트 부호 없는 정수(0 ~ 255 범위)를 나타내는 값 형식입니다. 메모리를 절약하면서 작은 범위의 정수 데이터를 다룰 때 유용하게 사용되며, 파일 입출력, 네트워크 통신, 이미지 처리 등 바이트 단위 데이터를 처리하는 곳에서 널리 활용됩니다.
Byte 구조체의 주요 필드
Byte 구조체는 다음과 같은 상수 필드를 제공합니다.
| 번호 | 필드 및 설명 |
|---|---|
| 1 | MaxValue Byte가 가질 수 있는 최댓값(255)을 나타냅니다. 이 필드는 상수입니다. |
| 2 | MinValue Byte가 가질 수 있는 최솟값(0)을 나타냅니다. 이 필드는 상수입니다. |
Byte 구조체의 주요 메서드
Byte 구조체에서 자주 사용되는 메서드는 다음과 같습니다.
| 번호 | 메서드 및 설명 |
|---|---|
| 1 | CompareTo(Byte) 이 인스턴스를 지정된 8비트 부호 없는 정수와 비교한 후, 두 값의 상대적인 크기를 나타내는 값을 반환합니다. |
| 2 | CompareTo(Object) 이 인스턴스를 지정된 개체와 비교한 후, 두 값의 상대적인 크기를 나타내는 값을 반환합니다. |
| 3 | Equals(Byte) 이 인스턴스와 지정된 Byte 개체가 동일한 값을 나타내는지 여부를 확인하여 그 결과를 반환합니다. |
| 4 | Equals(Object) 이 인스턴스가 지정된 개체와 같은지 여부를 확인하여 그 결과를 반환합니다. |
| 5 | GetHashCode() 이 인스턴스의 해시 코드를 반환합니다. |
| 6 | GetTypeCode() 값 형식 Byte에 해당하는 TypeCode를 반환합니다. |
이 외에도 Parse()로 문자열을 Byte로 변환하거나, ToString()에 서식 지정자를 사용해 다양한 형식으로 출력할 수 있습니다.
예제 1: 문자열을 Byte로 변환하기
Byte.Parse() 메서드를 사용하면 문자열을 Byte 값으로 변환할 수 있습니다. 변환 과정에서 값이 범위를 벗어나거나 형식이 올바르지 않으면 예외가 발생하므로 try-catch 블록으로 처리하는 것이 좋습니다.
using System;
public class Demo {
public static void Main() {
string str = "186";
try {
byte val = Byte.Parse(str);
Console.WriteLine(val);
}
catch (OverflowException) {
Console.WriteLine("Byte의 범위를 벗어났습니다.", str);
}
catch (FormatException) {
Console.WriteLine("형식이 잘못되었습니다.", str);
}
}
}실행 결과
186
예제 2: 다양한 서식으로 Byte 출력하기
ToString() 메서드에 서식 지정자를 활용하면 Byte 값을 원하는 형태로 출력할 수 있습니다. 아래 예제에서는 10진수 4자리(D4)와 16진수 4자리(X4) 형식으로 배열의 각 요소를 출력합니다.
using System;
public class Demo {
public static void Main() {
byte[] arr = { 0, 10, 50, 90, 100, 150 };
foreach (byte b in arr) {
Console.Write(b.ToString("D4") + " ");
Console.WriteLine(b.ToString("X4"));
}
}
}실행 결과
0000 0000 0010 000A 0050 0032 0090 005A 0100 0064 0150 0096
마무리
C#의 Byte 구조체는 8비트 부호 없는 정수를 안전하게 다룰 수 있도록 비교, 변환, 해시 생성 등 다양한 기능을 제공합니다. 특히 Parse()>를 사용할 때는 OverflowException과 FormatException 처리를 습관화하면 더욱 견고한 코드를 작성할 수 있습니다.