我正在查看一个项目的源代码,我注意到以下语句(keyByte 和 codedByte 都是 type 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;
我的问题是:我应该总是期望这种情况吗?