C中的十六进制浮点常量
发布时间:2020-12-16 05:17:51 所属栏目:百科 来源:网络整理
导读:我有一个十六进制浮点常量,我想直接在我的C程序中声明,并避免转换.我认为必须先规范,对吗?如何规范化并声明? // hex constant 0xDE.488631 double val = 0xDE.488631; // Error must have exponent.double val = 0x0.DE488631p-2; // Pretty sure this is
我有一个十六进制浮点常量,我想直接在我的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的指数是很容易理解的,除非你有一些理由使用第二个例子中的表单. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |