对于某些 API 集成,我有一个操作需要添加两个字节并得到一个字节作为结果。这是某种校验和。现在自然会发生溢出。
例如
byte a = 0xff
byte b = 0x01
byte results = a + b;
是否有简单的内置语法来避免溢出以继续处理下一个字节,还是我必须自己执行此操作?例如减去完整字节等等? 没有为此找到 API,我是不是忽略了什么?
最佳答案
然而,当您添加 byte
时,结果是 int
,例如
byte a = 100;
byte b = 200;
var result = a + b; // result == 300
由于 a
和 b
都在 0..255
范围内,因此结果将在 0..510
范围并且不可能发生整数溢出。但是您想要 byte result
,这就是您需要强制转换的原因:
byte result = (byte) (a + b);
在这里,.net 可以显示两种类型的 react :
256 -> 0
、257 -> 1
等我们想要第二个选项,这就是为什么未选中
:
byte result = unchecked((byte) (a + b));
https://stackoverflow.com/questions/70063130/
相关文章:
javascript - 为什么不重新分配 forEach 中的参数元素起作用
angular - 类型错误 : Cannot read properties of undefin
kotlin - 我正在尝试使用 Jetpack Compose 在 Android 中设置背景图片
angular - "declare global{ interface Window{ analy
typescript - 如何防止将 Prop 传递给内部样式组件
python - 返回 boolean 数组中 "false"值的索引
angular - 我需要取消订阅 Angular Observable 吗?