【求解答】C语言位操作与关系运算符的问题

【代码1】

unsigned short int checksum_R=~0x01+1;
bool A=(checksum_R==(~0x01+1));
cout<<A<<endl
    <<"checksum_R="<<checksum_R<<endl;

运行结果是A=0,checksum_R=65535

【代码2】

unsigned short int checksum_R=0x01+1;
bool A=(checksum_R==(0x01+1));
cout<<A<<endl
    <<"checksum_R="<<checksum_R<<endl;

运行结果是A=1,checksum_R=2

想问一下,为什么加了关系运算符,恒等于的运算结果就变了呢?

第一段看不清楚,怎么有那么多中划线,啥意思