我偶然发现了http://sourceware.org/ml/glibc-cvs/2013-q1/msg00115.html,其中包括
#define TWO5 0x1.0p5 /* 2^5 */
显然,two5被定义为具有显式值
1<<5
的double。然而,这是我第一次看到这个符号。这种格式是如何使用的,与编写2.5
相比有什么优势? 最佳答案
这个符号是在C99中引入的。其优点是该值是以十六进制形式表示的,因此当您在基本表示形式和十进制形式之间转换浮点值时,不必进行舍入等操作。
有很多页面描述了这种符号,例如:
http://www.exploringbinary.com/hexadecimal-floating-point-constants/