Jak wykonać operację bitową na liczbach zmiennoprzecinkowych

Próbowałem tego:

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

Dostaję błąd kompilatora mówiąc, że operand& nie może być typu float.

Kiedy robię:

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

Rozruch programu. Jedyną rzeczą jest to, że operacja bitowa jest wykonywana na całkowitej reprezentacji liczby uzyskanej po zaokrągleniu.

Poniższe informacje również są niedozwolone.

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

Nie rozumiem dlaczegoint można rzucić navoid* ale niefloat.

Robię to, aby rozwiązać problem opisany w pytaniu Przepełnienie stosuJak rozwiązywać równania liniowe za pomocą algorytmu genetycznego?.

questionAnswers(9)

yourAnswerToTheQuestion