Getting absolute value from binary int using bitwise : flt32 flt32_abs (flt32 x) {
	


int mask=x>>31;

	printMask(mask,32);
	puts("Original");
	printMask(x,32);

	x=x^mask;

	puts("after XOR");
	printMask(x,32);

	x=x-mask;

	puts("after x-mask");
	printMask(x,32);
  return x;
}

Heres my code, the value -32 is returning .125.  I'm confused because it's a pretty straight up formula for abs on bits, but I seem to be missing something.  Any ideas?  Thanks y'all.  