为什么Java不包含对无符号整数的支持?
在我看来,这是一个奇怪的遗漏,因为它们允许人们编写不太可能在意外的大输入上产生溢出的代码.
此外,使用无符号整数可以是一种自我文档形式,因为它们表明unsigned int意图保留的值绝不应该是负数.
最后,在某些情况下,无符号整数对于某些操作(例如除法)可能更有效.
包含这些内容的不利之处是什么?
Javachar是一种 16 位数据类型,但是在对其执行算术时它是有符号的还是无符号的?
您可以将其用作算术中的无符号 16 位整数吗?
例如,下面的说法正确吗?
char c1;
char c2;
int i = c1 << 16 | c2;
Run Code Online (Sandbox Code Playgroud)
或者是否有必要先从 c2 中去除符号扩展位?
(我确信这个问题的答案在其他地方,但似乎没有通过明显的搜索找到)。