Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# Byte 구조체 완벽 가이드: 필드, 메서드, 실전 예제

C# Byte 구조체란?

C#의 Byte 구조체는 8비트 부호 없는 정수(0 ~ 255 범위)를 나타내는 값 형식입니다. 메모리를 절약하면서 작은 범위의 정수 데이터를 다룰 때 유용하게 사용되며, 파일 입출력, 네트워크 통신, 이미지 처리 등 바이트 단위 데이터를 처리하는 곳에서 널리 활용됩니다.

Byte 구조체의 주요 필드

Byte 구조체는 다음과 같은 상수 필드를 제공합니다.

번호필드 및 설명
1MaxValue
Byte가 가질 수 있는 최댓값(255)을 나타냅니다. 이 필드는 상수입니다.
2MinValue
Byte가 가질 수 있는 최솟값(0)을 나타냅니다. 이 필드는 상수입니다.

Byte 구조체의 주요 메서드

Byte 구조체에서 자주 사용되는 메서드는 다음과 같습니다.

번호메서드 및 설명
1CompareTo(Byte)
이 인스턴스를 지정된 8비트 부호 없는 정수와 비교한 후, 두 값의 상대적인 크기를 나타내는 값을 반환합니다.
2CompareTo(Object)
이 인스턴스를 지정된 개체와 비교한 후, 두 값의 상대적인 크기를 나타내는 값을 반환합니다.
3Equals(Byte)
이 인스턴스와 지정된 Byte 개체가 동일한 값을 나타내는지 여부를 확인하여 그 결과를 반환합니다.
4Equals(Object)
이 인스턴스가 지정된 개체와 같은지 여부를 확인하여 그 결과를 반환합니다.
5GetHashCode()
이 인스턴스의 해시 코드를 반환합니다.
6GetTypeCode()
값 형식 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 처리를 습관화하면 더욱 견고한 코드를 작성할 수 있습니다.