c++ - 什么时候使用按位运算而不是算术运算?

标签 c++ compilation bit-manipulation

<分区>

假设我正在检查奇数:

(i % 2 == 1)

编译器会将该操作转换为:

if(a & 1)

?

我知道按位运算速度更快,有时我会使用位。

但是我的问题是:如果普通算术更具可读性(在大多数情况下),如果编译器稍后可能会转换它,我什么时候应该使用按位?

或者我是否应该在可能的情况下始终使用按位(即使它的可读性较差)?

最佳答案

您应该始终使用人类可读性更好的形式。如果执行速度很重要,您必须分析您的程序并查看您的编译器生成的程序集。

关于c++ - 什么时候使用按位运算而不是算术运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52137520/

相关文章:

c++ - boost::atomic 的 header 是什么

c++ - boost dynamic_bitset 的编译错误

c++ - 如何将一个无符号的 short 一分为二

mysql - 如何知道一组日期范围是否涵盖更大的日期范围?

c++ - 当作为函数模板的 T* 参数传递时,使用运算符 T* 强制模板类

c# - 如何在没有项目的情况下编译C#文件?

c - 我如何定义两个结构,每个都在第二个结构中使用? C语言

Android Studio 项目已经注册

java - 将一位插入字节数组

c++ - 强制更新 Qt GUI