Es potencia de 2?
El otro día me encontré una función muy curiosa. Se trata de una función que te dice si un numero es potencia de 2 sin tener que hacer la pesada tarea de una raíz cuadrada, que es lo que haríamos todos seguramente, ver si al hacerle la raíz cuadrada nos deja decimales o no.
bool ispow2(int x) { return !((~(~0U>>1)|x)&x -1) ; }
como funciona?
ResponderEliminar