给定两个整数 X 和 Y,在 C++ 中将它们转换为 X.Y 浮点值的最有效方法是什么?
E.g.
X = 3, Y = 1415 -> 3.1415
X = 2, Y = 12 -> 2.12
以下是我的机器上的一些鸡尾酒餐巾基准测试结果,适用于将两个int
s to a float
,截至撰写本文时。
警告:我现在添加了自己的解决方案,该解决方案似乎效果很好,因此有偏见!请仔细检查我的结果。
Test |
Iterations |
ns / iteration |
@aliberro's conversion v2 |
79,113,375 |
13 |
@3Dave's conversion |
84,091,005 |
12 |
@einpoklum's conversion |
1,966,008,981 |
0 |
@Ripi2's conversion |
47,374,058 |
21 |
@TarekDakhran's conversion |
1,960,763,847 |
0 |
- CPU:四核 Intel Core i5-7600K 速度/最小/最大:4000/800/4200 MHz
- 德文 GNU/Linux 3
- 内核:5.2.0-3-amd64 x86_64
- GCC 9.2.1,带有标志:
-O3 -march=native -mtune=native
基准代码 https://gist.github.com/eyalroz/ebea248b41f0b32d4e92109c4e9233e8(Github要点)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)