对字节等计算的细节不是很清楚。例如我对两个byte进行异或操作:
byte a = 0x74;
byte b = 0x30;
int c = a ^ b;a的二进制表示为01110100, b表示为00110000,那么异或操作后,按说是10111011。以反码算,数值应为-69才是。
可是我打印出来c的值是68,即01000100。 这是怎么一回事?另外我想问一下,int c = a ^ b这条语句,从byte扩展到int,它的扩展原则是什么?是直接补0吗?如果直接补零的话,那上边的异或结果应该是187,也不对啊。