test wrote:
void main(){ assert(0x814a & 0x8000 == 0x8000 ); }
That's because it's equivalent to void main(){ assert(0x814a & (0x8000 == 0x8000) ); }the right side of the & is 'bool true', which is converted to 'int 1', which has none of the bits in 0x814a set...
You probably meant to do this: void main(){ assert((0x814a & 0x8000) == 0x8000 ); }