C#のInt16構造体とは?主なフィールドとメソッドを徹底解説
C#におけるInt16構造体は、-32768から32767までの範囲の値を扱える16ビット符号付き整数を表します。この記事では、Int16構造体が持つ主なフィールドとメソッド、そして実際のコード例をわかりやすく解説します。
Int16構造体の主なフィールド
Int16構造体には、以下の2つの定数フィールドが用意されています。
| 番号 | フィールドと説明 |
|---|---|
| 1 | MaxValue − Int16が表現できる最大値を表す定数フィールドです(32767)。 |
| 2 | MinValue − Int16が表現できる最小値を表す定数フィールドです(-32768)。 |
Int16構造体の主なメソッド
Int16構造体には、以下のような便利なメソッドが用意されています。
| 番号 | メソッドと説明 |
|---|---|
| 1 | CompareTo(Int16) − 指定した16ビット符号付き整数と現在のインスタンスを比較し、その結果に応じて大小関係を示す整数を返します。 |
| 2 | CompareTo(Object) − 指定したオブジェクトと現在のインスタンスを比較し、その結果に応じて大小関係を示す整数を返します。 |
| 3 | Equals(Int16) − 現在のインスタンスが指定したInt16の値と等しいかどうかを示す値を返します。 |
| 4 | Equals(Object) − 現在のインスタンスが指定したオブジェクトと等しいかどうかを示す値を返します。 |
| 5 | GetHashCode() − 現在のインスタンスのハッシュコードを返します。 |
| 6 | GetTypeCode() – 値型Int16のTypeCodeを返します。 |
| 7 | Parse(String) − 数値の文字列形式を、それと等価な16ビット符号付き整数に変換します。 |
それでは、Int16構造体の具体的な使用例を見ていきましょう。
Int16.GetHashCode()メソッドの使い方
C#のInt16.GetHashCode()メソッドは、現在のインスタンスのハッシュコードを返すために使用されます。ハッシュコードは、オブジェクトをハッシュテーブルなどのデータ構造で効率的に管理するために利用される数値です。
構文
public override int GetHashCode ();
コード例1
まずは基本的な例として、2つのshort型変数のハッシュコードを取得してみましょう。
using System;
public class Demo {
public static void Main() {
short val1 = 20;
short val2 = 25;
Console.WriteLine("Value1 = "+val1);
Console.WriteLine("Value2 = "+val2);
Console.WriteLine("HashCode for value1 = "+val1.GetHashCode());
Console.WriteLine("HashCode for value2 = "+val2.GetHashCode());
Console.WriteLine("Are they equal? = "+(val1.Equals(val2)));
}
}出力結果
Value1 = 20 Value2 = 25 HashCode for value1 = 1310740 HashCode for value2 = 1638425 Are they equal? = False
コード例2
次に、0とInt16.MaxValue(最大値)を使った例を見てみましょう。
using System;
public class Demo {
public static void Main() {
short val1 = 0;
short val2 = Int16.MaxValue;
Console.WriteLine("Value1 = "+val1);
Console.WriteLine("Value2 = "+val2);
Console.WriteLine("HashCode for value1 = "+val1.GetHashCode());
Console.WriteLine("HashCode for value2 = "+val2.GetHashCode());
Console.WriteLine("Are they equal? = "+(val1.Equals(val2)));
}
}出力結果
Value1 = 0 Value2 = 32767 HashCode for value1 = 0 HashCode for value2 = 2147450879 Are they equal? = False
Int16.GetTypeCode()メソッドの使い方
C#のInt16.GetTypeCode()メソッドは、値型Int16のTypeCodeを返すために使用されます。これにより、変数がどの型であるかを実行時に確認できます。
構文
public TypeCode GetTypeCode ();
コード例1
GetHashCode()と組み合わせて、GetTypeCode()の動作を確認してみましょう。
using System;
public class Demo {
public static void Main() {
short val1 = 0;
short val2 = Int16.MaxValue;
Console.WriteLine("Value1 = "+val1);
Console.WriteLine("Value2 = "+val2);
Console.WriteLine("HashCode for value1 = "+val1.GetHashCode());
Console.WriteLine("HashCode for value2 = "+val2.GetHashCode());
Console.WriteLine("Are they equal? = "+(val1.Equals(val2)));
TypeCode type1 = val1.GetTypeCode();
TypeCode type2 = val2.GetTypeCode();
Console.WriteLine("TypeCode for val1 = "+type1);
Console.WriteLine("TypeCode for val2 = "+type2);
}
}出力結果
Value1 = 0 Value2 = 32767 HashCode for value1 = 0 HashCode for value2 = 2147450879 Are they equal? = False TypeCode for val1 = Int16 TypeCode for val2 = Int16
コード例2
別の値を使った例も見てみましょう。
using System;
public class Demo {
public static void Main() {
short val1 = 23;
short val2 = 0;
Console.WriteLine("Value1 = "+val1);
Console.WriteLine("Value2 = "+val2);
Console.WriteLine("HashCode for value1 = "+val1.GetHashCode());
Console.WriteLine("HashCode for value2 = "+val2.GetHashCode());
Console.WriteLine("Are they equal? = "+(val1.Equals(val2)));
TypeCode type1 = val1.GetTypeCode();
TypeCode type2 = val2.GetTypeCode();
Console.WriteLine("TypeCode for val1 = "+type1);
Console.WriteLine("TypeCode for val2 = "+type2);
}
}出力結果
Value1 = 23 Value2 = 0 HashCode for value1 = 1507351 HashCode for value2 = 0 Are they equal? = False TypeCode for val1 = Int16 TypeCode for val2 = Int16
まとめ
Int16構造体は、16ビット符号付き整数を扱うための基本となる型です。MaxValueやMinValueといった定数フィールドにより値の範囲を簡単に確認でき、CompareTo()による比較、Equals()による等価判定、GetHashCode()によるハッシュコード取得、GetTypeCode()による型情報の取得など、実用的なメソッドが豊富に用意されています。数値データを安全かつ効率的に処理したい場面で、ぜひ活用してみてください。
-
C#におけるInt16(short型)からDecimalへの暗黙的な変換方法
C#のshort型は、16ビットの符号付き整数(Int16)を表すデータ型です。Int16の値をdecimal型へ暗黙的に変換するには、特別なメソッドや明示的なキャストは不要です。まず、short型の変数に値を設定します。short val = -32768;その後、その値をdecimal型の変数に代入するだけで、暗黙的な変換が自動的に行われます。dec = val;short型はdecimal型よりも表現できる範囲が小さいため、この変換ではデータの損失やオーバーフローのリスクがなく、コンパイラが安全に処理してくれます。サンプルコードusing System; public class De
-
Pythonのstructモジュール入門:データ型とバイト列の相互変換
このチュートリアルでは、Pythonのstructモジュールについて詳しく解説します。それでは早速見ていきましょう。 structモジュールは、Pythonのネイティブなデータ型をバイト列(bytes)に変換したり、その逆の変換を行ったりするために使用されるモジュールです。標準ライブラリに含まれる組み込みモジュールのため、追加のインストールは一切不要です。 structモジュールはC言語と密接な関係があります。このモジュールを扱うには、C言語で各データ型を表すために使用されるフォーマット文字(記法)を理解しておく必要があります。主なものを以下の表にまとめました。 データ型フォーマット文字