私はこれを試しました:
float a = 1.4123;
a = a & (1 << 3);
&
のオペランドをfloat型にすることはできないというコンパイラエラーが発生します。
私がする時:
float a = 1.4123;
a = (int)a & (1 << 3);
プログラムを実行します。唯一のことは、ビット単位の演算が、四捨五入後に取得された数値の整数表現に対して実行されることです。
以下も許可されていません。
float a = 1.4123;
a = (void*)a & (1 << 3);
なぜキャストできるのかわかりませんint
が、キャストできvoid*
ませんfloat
。
Stack Overflowの質問で説明されている問題を解決するためにこれを行っています。遺伝的アルゴリズムを使用して線形方程式を解く方法は?。