【C#】byte同士の演算結果はint型になります

2022年12月23日

教科書では同じ型の算術演算の結果はその型になります・・・と表示されていると思います

次の整数型の場合の演算結果はint型となります

サンプルコード(エラー)

エラーが起こるコード

byte a = 100;
byte b = 10;

byte c = a / b;

Console.WriteLine(c);

Visual Studio の画面

対応

byte同士では演算前にそれぞれがint型に変換され、演算結果もint型になります(仕様)
よって、演算結果をbyte堅にしたい場合は、結果をキャストする必要があります

byte a = 100;
byte b = 10;

byte c = (byte)(a / b);

Console.WriteLine(c);

情報の確認

マイクロソフトのページから確認できます

オペランドが他の整数型 (sbytebyteshortushortchar) のときは、それらの値は int型に変換され、演算の結果もその型になります。

https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/operators/arithmetic-operators

C#

Posted by hidepon