プロジェクトのソースコードを見ていたら、次のステートメントに気づきました(keyByteとcodedByteはどちらもタイプですbyte
)。
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;
私の質問は、これが事実であると常に期待すべきかということです。