|
28
|
| Jesse Armand · 技术社区 · 16 年前 |
|
|
1
31
处理nsinteger与nsinteger时,您还应该了解整数转换规则: 例如,以下片段返回0(false),尽管您希望它打印1(true):
原因是[si]变量被隐式转换为无符号int! 见 CERT's Secure Coding site 就这些“问题”以及如何解决这些问题进行深入讨论。 |
|
|
2
17
默认情况下,假设一个整数有符号。换句话说,编译器假定将调用一个整数变量来存储负数或正数。这限制了范围可以在任何方向到达的范围。例如,32位int的范围是4294967295。实际上,由于该值可能为正或负,因此范围实际上为2147483648至+2147483647。如果我们知道一个变量永远不会被调用来存储一个负值,我们可以声明它是无符号的,从而将(正值)范围扩展到0到+4294967295。所以我想说,当你知道你有一个有限的输出范围时,使用nsinteger是可以的。如果我需要返回非常大的纯正数,我会亲自使用nsinteger |
|
|
3
7
如果您的方法有适当的限制输出范围,您也可以使用
|
|
|
4
5
我不知道cocoa的具体情况,但通常有符号整数的唯一缺点是它们通常有一半的最大值作为无符号整数,例如32位系统约20亿而不是40亿。一般来说,这不是一个很大的区别,因为如果你处理的是接近20亿的值,那么在同样的情况下,你可能也会同样担心40亿的最大值,因为它仍然非常接近一个溢出值,只有2或3的倍数。 有符号整数通常是首选的,因为它具有额外的灵活性,而且事实上,有符号整数可以用于几乎所有的方案中,无符号整数可以加上在需要负的情况下它不能加上的所有其他方案。 如果要强制只使用正值,则可能首选无符号。 |
|
|
KanKonga · 为什么这个swift代码没有显示在文本字段中? 2 年前 |
|
|
Community wiki · 目标的Xcode构建阶段的自动更新? 2 年前 |
|
|
Anton Timonin · 如何正确地将动态pod库更改为静态? 2 年前 |
|
|
Igor · 在OSX中,捆绑包的用户首选项在哪里? 2 年前 |
|
|
narner · 从Swift包创建Cocoapods框架 2 年前 |