C++允许您将两个整数比较组合在一起进行范围检查,例如
(unsigned)X < (unsigned)Upper
Run Code Online (Sandbox Code Playgroud)
当返回时返回true
0 <= X < Upper
Run Code Online (Sandbox Code Playgroud)
Java语言没有无符号类型.您是否看到了一种获得相同效果的方法,使用单一比较而不是太多开销?
更新:
从@Bathsheba的评论来看,char类型是无符号的16位并且适合我的目的,因为我的整数实际上在短裤的范围内.
问题仍然存在问题int
.
可能是某些东西(X | (Upper - 1 - X)) >= 0
,允许30位的范围.