假设我在java中有以下代码
byte t = (byte) 0b10001000;
byte z = 0b00000000;
z = (byte) (t|z);
你认为输出将是10001000,但它最终在字符串表示中为-1111000, - 符号当然是第一个1,使其成为11111000.如果我执行相同的代码但是最后一位z为1,例如00000001,我执行相同的操作,我得到-1110111或11110111.我认为这是由于负符号字节t的一些转换问题。有什么方法可以避免这种情况吗?有没有办法让10000000在OR操作中与01000000相同?