我試圖生成包含浮點文字的LLVM文本IR。爲了能夠可靠地工作,我需要能夠將浮點數轉換爲它們的十六進制文字表示。例如,這裏是結果應該是什麼:在Javascript中生成LLVM浮點十六進制文字
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