私は数年前に書かれた他の誰かのコードを調べていますが、これはかなり文書化されていません。ある時点で、次のコード スニペットがあります。
#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 であるそれのアークタンを提供します。ここで問題が発生しました。 のアークタンを計算するx*(1<<BINARYPOINT)
と、x のアークタンがどのように得られるかわかりません。
ここで何が起こっているのか誰か説明してもらえますか?
よろしくお願いします。