我在查看 一个项目 的源代码时,发现了以下 语句(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;
我的问题是:我是否应该总是期望这种情况发生?