1.求整数部分
求解m % 2^n的整数部分其实就是m右移n位。
例:10/8 =???
解:(10)B=1010 右移3位变成0001,所以整数部分为1
2.求余数
求解m % 2^n的余数可以将其转换为 m & (2^n-1) 或者 m-(m>>n)<<n
例:10% 8 =???
解:
1010>>3=0001
0001<<3=1000
1010-1000=0010
所以余数为2
3.求小数部分
求解m % 2^n的小数部分其实就是对其余数乘10^q,然后再除2^n,这里表示精确到小数点后q位。
例:10% 8 =???
解:10% 8的余数为2
- 2*10=20
20/8=2 (小数部分) 所以20/8=1.2
- 2*100=200
200/8=25(小数部分) 所以20/8=1.25