c++ - 带加法和移位的浮点 mul (*10)

标签 c++ c

我的问题很简单:我可以2 * 10通过 (2 << 2) + 2 进行移位和加法但我不知道如何获取 2.2 * 10带有移位和加法。任何建议将不胜感激。

-khan_gl

最佳答案

这有效:

2.2 + 2.2 + 2.2 + 2.2 + 2.2 + 2.2 + 2.2 + 2.2 + 2.2 + 2.2 + (0 << 1)

开个玩笑,你不能,因为你不能在 C++/C 中移动 float 。好吧,你可以(通过令人讨厌的类型双关),但随后你就会陷入未定义的行为。

此外,这样做没有任何意义。如果你正在进行乘法,那么只需使用 * 。编译器会将其转换为最有效的形式。

关于c++ - 带加法和移位的浮点 mul (*10),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9612892/

相关文章:

c++ - 当我离开 shift 超出 INT_MAX 时发生了什么?

c++ - 如何在项目中实现良好的调试/日志记录功能

c - Malloc-释放后使用内存未触发错误

c++ - 使用 CMake 编译其他外部库(没有 CMakeLists.txt)

c++ - 结合仿函数和 lambda

c++ - gdb 从函数打印静态变量

c++ - 未找到 opencv .dll 文件

恒定时间评估

c - 写入 stdin 并从 stdout 读取(UNIX/LINUX/C 编程)

c++ - std::set 推导指南没有像我预期的那样工作