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?.