#include <stdio.h>

	int isPositive(int x) { return ((~x & (~x + 1)) >> 31) & 1; }

	int isPowerOfTwo(int x) { return isPositive(x) & ~(x & (x-1)); }
	
	int log2(int x)
	{
		int i = (-1);
		while(isPositive(x)) i++, x >>= 1;
		return i;
	}
	
	int isPowerOfNegativeTwo(int x)
	{
		return (  isPositive(x) &  isPowerOfTwo(x) & ~(log2(x) % 2) )
			 | ( ~isPositive(x) & isPowerOfTwo(-x) & (log2(-x) % 2) );
	}

int main(void)
{
	int x = 256;
	printf("%s", isPowerOfNegativeTwo(-512)?"true":"false");
	//printf("%s",( isPositive(x) & isPowerOfTwo(x)  & ~(log2(x) % 2) )?"true":"false");
	return 0;
}
