C中的十六进制浮点常量

我有一个十六进制浮点常量,我想直接在我的C程序中声明,并避免转换.我认为必须先规范,对吗?如何规范化并声明?
// hex constant 0xDE.488631  
double val = 0xDE.488631; // Error must have exponent.
double val = 0x0.DE488631p-2;  // Pretty sure this is wrong.

解决方法

您可以使用0的指数:
float val = 0xDE.488641p0;

哪个在更正常的看法符号意味着DE.488641×20(当然在16的基础上).你的猜测是接近的 – 指数是二进制指数,而不是十六进制指数.当您想获得正数指数时,您也使用负指数.纠正你的第二个例子,你可以使用:

float val = 0x0.DE488631p8;

其中以常规数学符号表示0.DE488631×28,或等效于指数的十六进制基数,为0.DE488631×162.

我认为使用0的指数是很容易理解的,除非你有一些理由使用第二个例子中的表单.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...