に負の整数を鋳造した結果Iはa projectのソースコードを見ていた、私は(keyByteとcodedByte両方のタイプbyte
である)以下statementに気づい:C番号:バイト
return (byte)(keyByte - codedByte);
私は、keyByteがcodedByteよりも小さい場合に結果がどうなるかを理解しようとしています。その結果、負の整数になります。範囲内の値を有する負の整数をキャストした結果を理解するためにいくつかの実験の後
[-255:-1]、私は次のような結果だ:だから、
byte result = (byte) (-6); // result = 250
byte result = (byte) (-50); // result = 206
byte result = (byte) (-17); // result = 239
byte result = (byte) (-20); // result = 236
をその-256 < a < 0
を提供し、私は結果を次のように判断することができました:
result = 256 + a;
私の質問は:私はいつもそうであると思いますか?
繰り返し:あなたは間違いなしです。 "負"の値は.Net "byte"のドメイン外にあるため、.Netは最初に(255より大きな整数値に)昇格します。 – paulsm4