c - 使用按位运算符乘以 9

标签 c bit-manipulation

有人可以告诉我如何使用按位运算符查找 9 的表吗?如果有详细的说明,我们将不胜感激。

最佳答案

要乘以 2 的 N 次方(即 2^N),请将位向左移动 N 次

0000 0001 = 1 

times 4 = (2^2 => N = 2) = 2 bit shift : 0000 0100 = 4

times 8 = (2^3 -> N = 3) = 3 bit shift : 0010 0000 = 32

等等..

可视化

Times 9 像这样添加原始值

0000 1001    // 9 original value

0001 0000    // 2 shift 3 to left
0000 0010 +  // 2
-----------
0001 0010 = 18

0001 1000    // 3(0000 0011) shift 3 to left
0000 0011 +  // 3
-----------
0001 1011 = 27

0010 0000    // 4(0000 0100) shift 3 to left
0000 0100 +  // 4
-----------
0010 0100 = 36

等等..

含义 x = (n<<3)+n

移位加乘法

关于c - 使用按位运算符乘以 9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17131119/

相关文章:

c - 如何将字符串写入C中的文件?

c++ - 二进制补码函数的问题

c# - 测试按位枚举值

c - 如何读取从文件中读取的特定行

c - 不打印 eratosthene 筛所需的输出

performance - 如何优化 MATLAB 按位运算

bit-manipulation - 使用按位逻辑运算实现位向量

optimization - 这种并行处理颜色分量的颜色混合技巧是如何工作的?

C编程错误if语句

c - 如何修改多参数宏的参数?