优化下面2个语句的效率:
(1)y=x%16
(2)y=m*63
解题思路:将操作符转化为二进制的移位操作可以大大提高效率
(1)x%16就是保留x(二进制)最后四位,所以只要将x转化为二进制后再和(前面高位补0)1111相与&,即可得x%16结果。
(2)乘法可以用二进制数的移位操作来实现,向右移是除法,向左移是乘法,空位补0。m*63可以转化为m*64-m=m*2的6次方-m
因此m*2的6次方可以转化为将二进制的m向左移6次
优化下面2个语句的效率:
(1)y=x%16
(2)y=m*63
解题思路:将操作符转化为二进制的移位操作可以大大提高效率
(1)x%16就是保留x(二进制)最后四位,所以只要将x转化为二进制后再和(前面高位补0)1111相与&,即可得x%16结果。
(2)乘法可以用二进制数的移位操作来实现,向右移是除法,向左移是乘法,空位补0。m*63可以转化为m*64-m=m*2的6次方-m
因此m*2的6次方可以转化为将二进制的m向左移6次