フリーエンジニアである下っ端SEの備忘録と日記。日々是精進。 開発言語は主にC#。 開発技術が日々進化し続けている今日、取り残されまいとするも歳のせいか覚えが悪いSE。 青色申告しているので、簿記の勉強もしないと…

2009年09月17日

【C#】short型 + short型 = int型

異なる型どうしを演算しようとすると、結果はサイズが大きいほうの型で
返ってくるのが一般的だというのは感覚的にわかっているのですが。。。
double型 + int型 = double型 みたいな。

で、short+shortの結果をshort型に入れようとすると、エラーになってびっくりした。

short x = 5;
short y = 12;

//ビルドエラー:型 'int' を型 'short' に暗黙的に変換できません
short z = x + y;

//キャストすればOK
short z = (short)(x + y);

調べると「代入演算子の右側にある算術式が既定で int に評価される」とヘルプに載ってた。
sbyte+sbyteも同様にintで返ってくるみたい。

こういう決まりを単項数値昇格とか二項数値昇格っていうらしい。

参考↓
int (符号付き 32 ビット整数:-2,147,483,648 ~ 2,147,483,647)
short(符号付き 16 ビット整数:-32,768 ~ 32,767)
sbyte(符号付き 8 ビット整数:-128 ~ 127)


この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m
ブログランキング

タグ :.NETC#

この記事へのトラックバックURL

http://freelancer.yoka-yoka.jp/t296869
上の画像に書かれている文字を入力して下さい