我偶然发现了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/

08-26 16:12