相关疑难解决方法(0)

签名与无符号整数

我是否正确地说有符号和无符号整数之间的区别是:

  1. 无符号可以保持较大的正值,而不是负值.
  2. 无符号使用前导位作为值的一部分,而带符号版本使用最左侧位来标识数字是正数还是负数.
  3. 有符号整数可以包含正数和负数.

还有其他差异吗?

language-agnostic unsigned signed integer

378
推荐指数
11
解决办法
35万
查看次数

C/C++使用int或unsigned int

在很多代码示例,源代码,库等中.我看到使用int时,就我所知,unsigned int更有意义.

我看到很多的地方是for循环.见下面的例子:

for(int i = 0; i < length; i++)
{
    // Do Stuff
}
Run Code Online (Sandbox Code Playgroud)

为什么你会使用一个int而不是一个unsigned int?这只是懒惰 - 人们不会打字打扰unsigned吗?

c c++ int unsigned types

28
推荐指数
3
解决办法
2万
查看次数

每当我知道我正在处理无符号值时,我应该使用"unsigned"吗?

通常,价值观是积极的.例如,TCP/UDP序列号始终为正值.两者int并unsigned int有足够大的存储即使是最大的sequence number,所以我可以使用这些类型.当已知值为正值时,还有许多其他示例.

unsigned当常规signed类型的容量足够(并且通常绰绰有余)时,是否有任何理由使用类型?

我个人倾向于使用常规类型,因为:

  • int可能比uint或更具可读性unsigned int
  • 我不需要包含额外的标题UINT等.
  • 我会在程序中的某个地方避免额外的演员阵容

使用unsignedI型的原因可以想象:

  • 帮助编译生成更好的代码?
  • 帮助另一个程序员理解该变量是无符号的
  • 避免可能的错误(例如,当int被分配给UINT编译器时,可能会产生编译时错误,我们应该检查我们分配的值是否为负数)

c++ signedness

9
推荐指数
1
解决办法
259
查看次数

标签 统计

c++ ×2

unsigned ×2

c ×1

int ×1

integer ×1

language-agnostic ×1

signed ×1

signedness ×1

types ×1