问题:y = x / 3600;
思路:y = x * 0x400000 / 3600 / 0x40000;
y= (x * 1165) >> 22
y = ((x << 10) + (x << 7 ) + (x << 3) + (x <<2) + x) >> 22
利用二进制计数试分解等式,这个软件的运算效率最高!
这里最主要的精度问题与溢出问题,要注意!
问题:y = x / 3600;
思路:y = x * 0x400000 / 3600 / 0x40000;
y= (x * 1165) >> 22
y = ((x << 10) + (x << 7 ) + (x << 3) + (x <<2) + x) >> 22
利用二进制计数试分解等式,这个软件的运算效率最高!
这里最主要的精度问题与溢出问题,要注意!