C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のByte構造体とは?主なフィールド・メソッドと使い方を実例で解説

C#のByte構造体は、8ビットの符号なし整数(0〜255)を表す値型です。ファイル入出力やバイナリデータの処理など、バイト単位でデータを扱う場面で頻繁に利用されます。

この記事では、Byte構造体が提供する主なフィールドとメソッドを整理し、実際のコード例を通して基本的な使い方をわかりやすく解説します。

Byte構造体の主なフィールド

No.フィールドと説明
1MaxValue
Byteが表現できる最大値(255)を表す定数フィールドです。
2MinValue
Byteが表現できる最小値(0)を表す定数フィールドです。

Byte構造体の主なメソッド

No.メソッドと説明
1CompareTo(Byte)
このインスタンスを指定された8ビット符号なし整数と比較し、相対的な大小関係を示す値を返します。
2CompareTo(Object)
このインスタンスを指定されたオブジェクトと比較し、相対的な大小関係を示す値を返します。
3Equals(Byte)
このインスタンスと指定されたByteオブジェクトが同じ値を表しているかどうかを示す値を返します。
4Equals(Object)
このインスタンスが指定されたオブジェクトと等しいかどうかを示す値を返します。
5GetHashCode()
このインスタンスのハッシュコードを返します。
6GetTypeCode()
値型ByteのTypeCodeを返します。

例1:文字列をByteに変換する

Byte.Parseメソッドを使うと、数値を表す文字列をbyte型に変換できます。変換対象の値が0〜255の範囲外の場合はOverflowException、数値として解釈できない文字列の場合はFormatExceptionがスローされるため、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("{0} は byte の範囲外です。", str);
      }
      catch (FormatException) {
         Console.WriteLine("{0} は数値として認識できません。", str);
      }
   }
}

実行結果

186

例2:書式指定子を使って表示する

ToStringメソッドに書式指定子を渡すことで、値をさまざまな形式の文字列に整形できます。「D4」は4桁の10進数表記、「X4」は4桁の16進数表記(大文字)に変換する指定です。

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

まとめ

Byte構造体は、0〜255の範囲の8ビット符号なし整数を扱うための基本となる型です。MaxValue・MinValueといった定数フィールドに加え、比較や等価判定のためのメソッドが用意されており、Byte.Parseによる文字列からの変換や、ToStringと書式指定子を組み合わせた柔軟な文字列化も簡単に行えます。バイナリデータを扱うプログラミングの基礎として、ぜひ押さえておきましょう。

  1. C#でバイト値をInt32値に変換する方法

    C#でバイト(byte)値をInt32値に変換するには、Convert.ToInt32()メソッドを使用します。このメソッドは、指定した値を32ビット符号付き整数(int型)へと安全に変換してくれます。Int32は32ビットの符号付き整数を表し、-2,147,483,648 ~ 2,147,483,647 の範囲の値を扱えます。一方、byte型は0~255の範囲しか表現できないため、より広い範囲での数値計算が必要な場合にInt32への変換が役立ちます。それでは、実際のコードを見ていきましょう。ここでは、byte型の最大値を表す Byte.MaxValue を例として使用します。byte val

  2. C#のBuffer.BlockCopyメソッドとは?バイト配列を高速にコピーする方法を解説

    C#のBuffer.BlockCopyメソッドは、あるバイト配列から別のバイト配列へ、指定した範囲のバイトデータを高速にコピーするためのメソッドです。プリミティブ型の配列に対して低レベルかつ効率的なコピーを行えるため、パフォーマンスが求められる場面でよく利用されます。 Buffer.BlockCopyの基本構文 Buffer.BlockCopy(コピー元配列, コピー元オフセット, コピー先配列, コピー先オフセット, コピーするバイト数); 各引数の意味は以下のとおりです。 src(コピー元配列):コピー元となるバイト配列 srcOffset(コピー元オフセット):コピー元配列の読み取り開