微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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的指数是很容易理解的,除非你有一些理由使用第二个例子中的表单.

原文地址:https://www.jb51.cc/c/115047.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐