void set(int i) { bits[i >> 5] |= 1 << (i & 32); }
时间: 2024-05-25 09:14:58 浏览: 172
stm32单片机PWM控制LED亮度.rar
这是一个 C++ 函数,表示将一个整数按位存储在一个数组中。
具体来说,它使用了位运算符 `>>` 和 `|`,以及位移和按位与运算符 `<<` 和 `&`。
`i >> 5` 表示将整数 i 右移 5 位,相当于将 i 除以 32,得到 i 所在的数组下标。`1 << (i & 32)` 表示将数字 1 左移 i 除以 32 的余数位,相当于将 1 放在 i 在所在的 32 位二进制数中的对应位置上。最后用按位或运算符 `|` 将结果与原数组中的值合并,即可将整数 i 存储在数组中。
需要注意的是,这里可能存在一个错误,即应该将 `1 << (i & 31)`,因为 `(i & 32)` 的结果只可能是 0 或 32,而我们需要的是下标所在的二进制数中的位置,因此应该用 `(i & 31)`。
阅读全文