Como executar uma operação bit a bit em números de ponto flutuante

Eu tentei isso:

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

Eu recebo um erro de compilador dizendo que o operando de& não pode ser do tipo float.

Quando eu faço:

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

Eu recebo o programa em execução. A única coisa é que a operação bit a bit é feita na representação inteira do número obtido após o arredondamento.

O seguinte também não é permitido.

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

Eu não entendo porqueint pode ser convertido paravoid* mas nãofloat.

Eu estou fazendo isso para resolver o problema descrito na pergunta Stack OverflowComo resolver equações lineares usando um algoritmo genético?.

questionAnswers(9)

yourAnswerToTheQuestion