c++ - C/C++ 检查是否设置了一位,即 int 变量

标签 c++ c bit-manipulation

int temp = 0x5E; // in binary 0b1011110.

有没有这样一种方法可以在没有位移和掩码的情况下检查 temp 中的第 3 位是 1 还是 0。

只是想知道是否有一些内置函数,还是我被迫自己写一个。

最佳答案

在C语言中,如果要隐藏位操作,可以写一个宏:

#define CHECK_BIT(var,pos) ((var) & (1<<(pos)))

并以这种方式使用它来检查右端的第 nth 位:

CHECK_BIT(temp, n - 1)

在 C++ 中,您可以使用 std::bitset .

关于c++ - C/C++ 检查是否设置了一位,即 int 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/523724/

相关文章:

包含类命名的 C++ typedef

c++ - 仅对数组中列的值求和

c - C 中整数行的结尾

c - c理解的逻辑转变

以与 GCC __builtin__popcount(int) 一样快的速度对整数计数位 1

c++ - 查找在给定指针类型上调用 free 的位置

c++ - 对记录数组进行快速排序(结构)

c++用新类型/类和 friend 重载构造函数

c - 'entry' 关键字发生了什么事?

c - 用二进制表示无符号整数