Java为什么不支持unsigned ints?
Java为什么不包括对无符号整数的支持?
在我看来,这是一个奇怪的遗漏,因为它们允许人们编写不太可能在意外大的输入上产生溢出的代码。
此外,使用无符号整数可以是一种自我证明的形式,因为它们指示无符号int打算保留的值永远不会为负。
最后,在某些情况下,无符号整数对于某些操作(例如除法)可能更有效。
包括这些的不利之处是什么?
回答:
在两行之间阅读时,我认为逻辑是这样的:
- 通常,Java设计人员希望简化可用数据类型的清单
- 对于日常用途,他们认为最常见的需求是签名数据类型
为了实现某些算法,有时需要无符号算术,但是将要实现这种算法的那种程序员也将具有“工作”能力,以对带符号数据类型进行无符号算术
通常,我会说这是一个合理的决定。可能,我会:
将字节设置为无符号,或者至少为该数据类型提供了一个有符号/无符号的替代名称(可能具有不同的名称)(将其签名有利于一致性,但是什么时候需要一个有符号字节?)
- 删除了“短”(你上次使用16位带符号算术的时间?)
尽管如此,通过一点点混合,对不超过32位的无符号值进行的操作并不算太糟糕,并且大多数人不需要进行无符号的64位除法或比较。
以上是 Java为什么不支持unsigned ints? 的全部内容, 来源链接: utcz.com/qa/407991.html