位操作
一些基本的位操作
判断整数的奇偶性:if((n & 1) == 0)
乘以2操作:n << 1
向下整除n // 2:n >> 1
实现某些库函数
乘法的实现
如何不用任何运算符计算两个正整数的乘积?
思路分析:
先判断a和b的正负,保存正负号,如果a或者b是负数,要把a和b转换成正数;
假设两个数a * b,相当于把a自加(b-1)次,而a的自加,可以通过位运算来实现,即a+a相当于a * 2,即把a向左移一位,如此只需做(b-1)的左移即可;a左移一位,增大一倍,b就右移一位,减少一半;此外当b为奇数时,保存a的值。
1 | int multiplication(int a, int b) |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 胡椒粉的秋天!