正如我们所知的计算整数x/2,我们只是y=x/2;为x*2 编写类似的东西; 但优秀的程序员使用位操作来计算它.
y=x/2;
他们只是这样做 y = x >> 1;
y = x >> 1;
这两种方法有什么区别吗?差异,我的意思是所需的时间/空间/内存的差异或两者完全相同(即x/2由x >> 1实现)?
也是乘法/除法与其他数字而不是2实现相同的方式(即5*5 = 10*2 + 5*1 = 10 << 1 + 5 = 25)?
5*5 = 10*2 + 5*1 = 10 << 1 + 5 = 25
c++ bit-manipulation multiplication integer-division
bit-manipulation ×1
c++ ×1
integer-division ×1
multiplication ×1