一個定點小數除法如下:
#define FD_DIV(X, Y) (((fp_t)X)<<FD_SHIFT_AMOUNT/(Y))
然而這是錯的……
錯在哪裏呢…左移 << 的優先級是低於除法 / 的…
所以會先計算FD_SHIFT_AMOUNT/(Y)
#define FD_DIV(X, Y) ((((fp_t)X)<<FD_SHIFT_AMOUNT)/(Y))
加上括號就好了…對括號哲學的理解還是不夠
一個定點小數除法如下:
#define FD_DIV(X, Y) (((fp_t)X)<<FD_SHIFT_AMOUNT/(Y))
然而這是錯的……
錯在哪裏呢…左移 << 的優先級是低於除法 / 的…
所以會先計算FD_SHIFT_AMOUNT/(Y)
#define FD_DIV(X, Y) ((((fp_t)X)<<FD_SHIFT_AMOUNT)/(Y))
加上括號就好了…對括號哲學的理解還是不夠