Как выполнить побитовую операцию над числами с плавающей запятой

Я попробовал это:

float a = 1.4123;
a = a & (1 << 3);

Я получаю сообщение об ошибке компилятора о том, что операнд& не может быть типа с плавающей точкой.

Когда я делаю:

float a = 1.4123;
a = (int)a & (1 << 3);

Я запускаю программу. Единственное, что побитовая операция выполняется для целочисленного представления числа, полученного после округления.

Следующее также не допускается.

float a = 1.4123;
a = (void*)a & (1 << 3);

Я не понимаю почемуint может быть приведен кvoid* но нетfloat.

Я делаю это, чтобы решить проблему, описанную в вопросе переполнения стекаКак решить линейные уравнения с использованием генетического алгоритма?.

Ответы на вопрос(9)

Ваш ответ на вопрос