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