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 );
    }

Reply via email to