C#の数値昇格(Numeric Promotion)とは?仕組みをサンプルコード付きで解説
C#における数値昇格(Numeric Promotion)の基本
数値昇格(Numeric Promotion)とは、その名の通り、より小さい型が演算の際に自動的により大きい型へと変換される仕組みのことです。例えば、short 型や byte 型は、算術演算を行う際に自動的に int 型へと昇格されます。
C#では、+ や * などの算術演算子を使用した場合、short、ushort、byte、sbyte といった小さい整数型はそのまま計算されず、一度 int 型に昇格してから演算が実行されます。そのため、演算結果を受け取る変数も int 型として宣言するのが一般的です。
数値昇格のサンプルコード
以下の例では、算術演算子の一つである乗算(*)における数値昇格の動作を確認できます。
short 型と ushort 型の値を掛け合わせていますが、これらの型は自動的により大きい型(この場合は int 型)へと昇格されてから演算されます。
コード例
using System;
class Program {
static void Main() {
short val1 = 99;
ushort val2 = 11;
int res = val1 * val2;
Console.WriteLine(res);
}
}実行結果
1089
解説
このプログラムでは、val1(short 型)と val2(ushort 型)を乗算しています。C#のコンパイラは、これらの小さい型を自動的に int 型へ昇格してから掛け算を行うため、結果は int 型の変数 res にそのまま代入できます。
もし昇格が行われなければ、異なる型同士の演算でコンパイルエラーが発生する可能性がありますが、数値昇格のおかげで開発者は明示的なキャストなしに安全に演算を行うことができます。
まとめ
- 数値昇格とは、小さい型が演算時に大きい型へ自動的に変換される仕組み。
- C#では
shortやushortなどの型は算術演算の際にint型へ昇格される。 - 演算結果は
int型になるため、受け取り側の変数もint型で宣言するのが基本。
-
HTMLリストの種類を解説!ul・ol・dlの違いと使い分け方
HTMLリストの3つの種類 HTMLには、用途に応じて使い分けられる3種類のリストがあります。 順序なしリスト <ul> 箇条書き形式のリストです。項目同士に特定の順序関係がなく、デフォルトでは黒丸(ビュレット)が先頭に表示されます。 順序付きリスト <ol> 番号付きのリストです。手順やランキングなど、項目に順序がある場合に使用します。 定義リスト <dl> 用語とその定義(説明文)をセットで表示するためのリストです。用語は<dt>タグ、説明は<dd>タグで記述します。 これらのリストは互いに入れ子(ネスト)にできるほか、CS
-
DBMSにおける依存関係の種類を徹底解説!5つの従属性を具体例で理解する
DBMS(データベース管理システム)における依存関係(従属性)とは、2つ以上の属性間に存在する関係のことを指します。データベース設計や正規化を理解するうえで、この依存関係の概念は非常に重要です。 DBMSにおける依存関係には、主に以下の5つの種類があります。 関数従属(Functional Dependency) 完全関数従属(Fully-Functional Dependency) 推移従属(Transitive Dependency) 多値従属(Multivalued Dependency) 部分従属(Partial Dependency) それでは、それぞれの依存関係について順番に見