乘除法and位移操作 2020-02-07(未经允许,禁止转载)

乘除法是我们再熟悉不过的算数计算操作。在我们的认知中, 乘法的本质是加法,除法的本质是减法 。在计算机中,乘除法的底层实现也正是通过加减操作完成的

位移操作,就是对一个n进制的数按位进行左移或者右移。 左移一位,扩大n倍,等于乘以n;右移一位,缩小n倍,等于除以n(指取整的除法)
例如:
十进制数1234,左移一位,得12340,也就是乘以10;右移一位,得123,也就是除以10取整

可以看到,位移只需要进行【非常简单的左右移动操作】,就实现了n倍增/n倍减的效果,比基于反复加减的乘除法更加高效

在计算机中,都以【二进制方式】存储数字。因此,在计算机中对数字进行位移操作,是在进行乘以2/除以2的操作
以二进制数111(十进制7)为例,左移一位,得到1110(十进制14);右移一位,得到11(十进制3)

例1
leetcode 50
实现pow(x, n)函数,计算x的n次幂
(也就是通过分解指数n为2的i次方的和形式实现 快速幂

例2
leetcode 29 计算两数的商(取整)



扩展阅读:一年级加减法表图 ... 二年级乘除法 及答案 ... 乘法口诀表图片大图 ... 位移 时间公式 ... 做加法时 错把40看成4 ... 位移计算器 ... 发送ramdisk 不动了16% ... 已知一个减法算式中 84 ... 3dmax如何检查对象自交 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网