gpt4 book ai didi

javascript - 在 Javascript 中生成 LLVM 浮点十六进制文字

转载 作者:行者123 更新时间:2023-11-29 22:12:55 26 4
gpt4 key购买 nike

我正在尝试生成包含浮点文字的 LLVM 文本 IR。为了使其可靠地工作,我需要能够将 float 转换为它们的十六进制文字表示形式。例如,结果应该是这样的:

f2hex(0.0001)    -> "0x3F1A36E2E0000000"
f2hex(0.1) -> "0x3FB99999A0000000"
f2hex(1.1) -> "0x3FF19999A0000000"
f2hex(3.33333) -> "0x400AAAA8E0000000"
f2hex(4.9) -> "0x40139999A0000000"
f2hex(111.99998) -> "0x405BFFFFA0000000"

我会满足于对算法的详细描述(不依赖于 Javascript 不可用的库或机器代码),但有效的 Javascript 代码甚至更好。

LLVM 语言引用描述了此处的格式:http://llvm.org/docs/LangRef.html#simple-constants

最佳答案

您要做的是转储 double 值的二进制表示形式。这是在 C 中如何完成的:

float f = ... // also works with double
char str[19];
sprintf(str, "0x%llX", f);

要在 Javascript 中执行此操作,您需要提取 float 的二进制表示形式。这不是微不足道的,但幸运的是,在 Stackoverflow 上似乎已经有了解决方案:Read/Write bytes of float in JS (具体来说,this answer 似乎很方便)

关于javascript - 在 Javascript 中生成 LLVM 浮点十六进制文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17072354/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com