最近刷了几道水题,有一个就是纯数学题,最后算出公式为 (4^x-1)/3 +1,于是我便用 shl优化乘方运算:(1 shl (x+x) -1)div 3 +1;
结果总是后面几个点错了,我用的是qword,可还是错了。
然后我用exp(x*ln(4))算乘方就AC了。于是我逐步运行过程,发现shl 运算时大于31就出错了。
不知道是不是位运算的适用范围在2^32之内,反正总结了一个经验:以后用shl、shr 要注意范围。
最近刷了几道水题,有一个就是纯数学题,最后算出公式为 (4^x-1)/3 +1,于是我便用 shl优化乘方运算:(1 shl (x+x) -1)div 3 +1;
结果总是后面几个点错了,我用的是qword,可还是错了。
然后我用exp(x*ln(4))算乘方就AC了。于是我逐步运行过程,发现shl 运算时大于31就出错了。
不知道是不是位运算的适用范围在2^32之内,反正总结了一个经验:以后用shl、shr 要注意范围。