什么时候适合使用无符号变量而不是有符号变量?在 for
循环中怎么样?
我听到了很多关于这个问题的意见,我想看看是否有任何类似共识的东西。
for (unsigned int i = 0; i < someThing.length(); i++) {
SomeThing var = someThing.at(i);
// You get the idea.
}
我知道 Java 没有无符号值,这肯定是 Sun Microsystems 上的一个有意识的决定。 ' 部分。
最佳答案
我很高兴找到a good conversation关于这个主题,因为我之前并没有真正考虑过它。
总而言之,如果您要对变量进行算术运算(就像在典型的 for 循环情况下一样),即使您完全确定所有数字都是正数,有符号也是一个不错的通用选择。
无符号在以下情况下开始变得更有意义:
- 您将执行按位操作,例如掩码,或者
- 您迫切想要利用符号位获得额外的正值范围。
就我个人而言,我喜欢签名,因为我不相信自己能够保持一致并避免混合这两种类型(就像文章警告的那样)。
关于language-agnostic - 何时使用无符号值而不是有符号值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/336/