计数到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的价值?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)