我正在查看几年前编写的其他人的代码,该代码的文档记录非常糟糕。在某一时刻,有以下代码片段:
#define BINARYPOINT 16
....
float x;
int y;
int z;
....
....
//x has new values now
y = (int) (x*(1<<BINARYPOINT));
z = arctan2(y);
x = z;
在代码中 y 被明确地用于计算它的反正切,函数 arctan 接受一个 int 并给出它的反正切,它是另一个 int。现在我的麻烦来了,我不明白计算的 arctanx*(1<<BINARYPOINT)
将如何给我 x 的 arctan?
谁能解释一下这里发生了什么?
提前非常感谢。