language-agnostic - 何时使用无符号值而不是有符号值?

标签 language-agnostic types

什么时候适合使用无符号变量而不是有符号变量?在 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/

相关文章:

php - 多维数组自动子数组初始化功能名称?

algorithm - 自动跟踪算法

C++:存储/记住模板类的类型

python - 在 numba 中使用 python 类型提示

language-agnostic - 新的 Web 开发框架?

language-agnostic - 给定 UTC 时间的日期,我如何知道当前是否是世界其他地方的同一天?

scala 值 toInt 不是 Any 的成员

ruby - 如何从可能具有前导零的字符串中解析数字?

typescript - 如何在不声明键类型的情况下声明对象值类型?

language-agnostic - 使用 DI 框架进行本地化 - 好主意?