在整数乘除法运算中,乘除法运算比移位和加减法等运算所用时间更加长,因此,我们可以利用移位和加减法运算来代替乘除法运算,使得代码效率更高。下面就说明怎么用移位和加减法运算来代替乘除法运算:
一个整数左移n位,相当于这个整数乘于2ⁿ
一个整数右移n位,相当于这个整数除于2ⁿ
例:
9*8=9<<3
9*9=9*8+9=9<<3+9
9*7=9*8-9=9<<3-9
9/4=9>>2(注意:除数只能是2ⁿ,否则不能实现)
1、什么样的数据类型可以直接移位
char、short、int、long、unsigned char、unsigned short、unsigned int、unsigned long都可以进行移位操作,而double、float、bool、long double则不可以进行移位操作。