objective-c – NSUInteger和NaN的价值?

objective-c – NSUInteger和NaN的价值?,第1张

概述为什么NSUInteger的值为2 ^ 32 – 1而不是2 ^ 32?这个事实与纳米值的需要之间是否存在关系?这太令人困惑了. 用手指数到10.真的:) 计数到10的标准方法是1,2,3,… 10(计算每个手指的ordinality).然而,“0指”呢? 通常情况下,这可能表示将手放在背后,但这会给系统增加另一条信息:你的手在前面(现在)还是在后面(缺失)? 在这种情况下,将双手放在背后相当于将 为什么NSUInteger的值为2 ^ 32 – 1而不是2 ^ 32?这个事实与纳米值的需要之间是否存在关系?这太令人困惑了.解决方法 用手指数到10.真的:)

计数到10的标准方法是1,2,3,… 10(计算每个手指的ordinality).然而,“0指”呢?

通常情况下,这可能表示将手放在背后,但这会给系统增加另一条信息:你的手在前面(现在)还是在后面(缺失)?

在这种情况下,将双手放在背后相当于将nil分配给NSNumber变量.但是,NSUInteger表示一个本机整数类型,它没有这个额外的状态,并且仍然必须编码0才有用.

在手指上编码值0的关键是简单地计算0,1,2..9.可以使用相同数量的手指(或信息位),但现在可以考虑有用的0,代价是没有10个值(仍有10个手指,但第10个手指仅表示值9 ).这与无符号整数的最大值为2 ^ n-1而不是2 ^ n的原因相同:它允许以最大效率编码0.

现在,NaN不是一个典型的整数值,而是来自浮点编码 – 想想浮点数或CGfloat.一个这样的常见编码是IEEE 754:

In computing,NaN,standing for not a number,is a numeric data type value representing an undefined or unrepresentable value,especially in floating-point calculations ..

总结

以上是内存溢出为你收集整理的objective-c – NSUInteger和NaN的价值?全部内容,希望文章能够帮你解决objective-c – NSUInteger和NaN的价值?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1071128.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存