37
A
回答
46
0x0.3p10
是在C99中引入的十六进制浮点字面值的示例。 p
将基数与指数分开。
0x0.3
位被称为有效数字部分(整体带有可选小数部分),指数是它被缩放的2的幂数。
该特定值被作为在0.3
十六进制或3 * 16-1
(3/16
)乘以210
(1024
),其给出3 * 1024/16
或192
计算。
下面的程序证实了这一点:
#include <stdio.h>
int main (void) {
double d = 0x0.3p10;
printf ("%.f\n", d);
return 0;
}
部分C99的6.4.4.2
具有所有的细节:
一个浮动常数具有一个有效数部分可以跟一个指数部分和一个后缀它指定了它的类型。有效数字部分的组成部分可以包括一个代表整数部分的数字序列,后跟一个句点(。),后面跟着一个代表小数部分的数字序列。
指数部分的组成部分是一个e,E,p或P,后跟一个由任意有符号数字序列组成的指数。整数部分或小数部分都必须存在;对于十进制浮点常量,周期或指数部分必须存在。
有效部分被解释为(十进制或十六进制)有理数;指数部分的数字序列被解释为十进制整数。对于十进制浮点常量,指数表示有效位数部分将被缩放的功率。对于十六进制浮点常数,指数表示有效位部分将被缩放的2的幂。
对于十进制浮点常量以及FLT_RADIX不是2的幂时的十六进制浮点常量,结果可以是最接近的可表示值,也可以是紧邻最接近的可表示值的较大或较小的可表示值,在一种实现定义的方式。对于FLT_RADIX为2的幂时的十六进制浮点常量,结果正确舍入。
相关问题
- 1. 十六进制浮点数
- 2. 从字节数组中打印十六进制浮点常量
- 3. Lua - 十六进制浮点数
- 4. 十六进制浮点舍入
- 5. 从十六进制到浮点数 - Javascript
- 6. 将十进制值转换为32位浮点十六进制
- 7. 将IEEE浮点十六进制转换为十进制?
- 8. 在C中浮点指向十六进制#
- 9. 在C#中将十六进制转换为IEEE 754浮点数
- 10. 浮点十六进制八进制二进制
- 11. 在MATLAB中使用十六进制浮点常量解析文件
- 12. 转换 - ASCII十六进制浮点在C++
- 13. 十六进制浮点数IEEE 754双精度C++
- 14. C编程 - 十六进制或十进制常规
- 15. 将二进制浮点数转换为十六进制浮点数
- 16. 十六进制字符串与浮点数浮动
- 17. 浮点十六进制字符串返回浮动
- 18. Haskell中浮点数的十六进制表示
- 19. 将浮点数向量转换为十六进制/二进制字符串
- 20. 输入十六进制并用C++读取十六进制
- 21. PIC汇编中的整型常量:十进制与十六进制
- 22. Python如何将十六进制浮点数转换为十进制
- 23. 将十进制转换为十六进制和十六进制
- 24. 十六进制,八进制,二进制到十进制(C++)
- 25. C# - AsymmetricCipherKeyPair到十六进制
- 26. 十六进制加法C++
- 27. C#浮点十进制转换
- 28. Python从UDP消息中解压十六进制浮点数
- 29. c中int64的十进制到十六进制
- 30. 十六进制
嗨,那它代表什么十进制值? `p`代表一些英语单词吗?谢谢。 – 2011-01-28 07:31:46