首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Objective-C双十六进制表示法

Objective-C双十六进制表示法
EN

Stack Overflow用户
提问于 2012-09-16 00:18:33
回答 1查看 463关注 0票数 0

你能解释一下使用'p‘字符的双十六进制数表示法吗:

代码语言:javascript
复制
0x1.5p10 or 0x1P-1

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-16 00:26:08

这实际上并不是Objective- C所特有的;它是从C继承而来的标准特性。它提供了一种编写浮点数而不进行舍入的方法。它在C标准中有明确的文档记录,但这里有一个快速概述:

十六进制浮点文字的格式为0x[significand]p[exponent],其中[significand]是十六进制数,[exponent]是以10为基数的整数。该数字的值为[significand] x 2^[exponent]

所以,举个例子:

代码语言:javascript
复制
0x1.5p10 = (1 + 5/16) x 2^10 = 1344.0
0x1p-1 = 1 x 2^-1 = 0.5

这些示例并不是特别有趣,因为它们也可以很容易地完全写成十进制浮点文字。随着指数变得更加极端,符号变得更加有趣。例如,考虑最大的有限双精度数:十六进制浮点数中的0x1.fffffffffffffp1023。精确地用十进制写就可以得到:

代码语言:javascript
复制
179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0

这是相当麻烦的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12439048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档