1つのバージョンは、以下のようなC#でushortをshortに変換するにはどうすればよいですか?
short value = unchecked((short)0x8010);
他のバージョンは動作しませんし、例外
short value = Convert.ToInt16(0x8010);
short value = (short)(0x8010);
をスローしますです未確認のキーワードなしで他のバージョンはありますか?
更新:予想は以下のshort
に収まるすべてushort
値を変換し、short.MaxValue
でないすべての値を置き換えるために働くだろう-32752
? 0x8010がshort.MaxValueより大きいため、エラーが予想されるのですか、あふれた値が必要ですか? –
0x8010は符号なしの短いスレッドではありません... –
[MSDN](http://msdn.microsoft.com/en-us/library/yht2cx7b%28v=80.aspx)によると、*明示的数値の変換は精度の低下や例外のスローを引き起こす可能性があります。* –