Java按位操作
我有这行代码Java按位操作,java,Java,我有这行代码 int b1 = 0xffff & (content[12]<<8 | 0xff & content[11]); int b1=0xffff&(content[12]由于两个因素的汇合,0xff是必要的: Java中的所有整数类型都是有符号的 所有按位运算符在执行操作之前将其参数提升为int(或long,如果需要) 结果是,如果设置了内容[11]的高阶位,它将被符号扩展为负int值。然后需要和使用0xff将其返回到(正)字节值。否则,当使用内容[12]
int b1 = 0xffff & (content[12]<<8 | 0xff & content[11]);
int b1=0xffff&(content[12]由于两个因素的汇合,0xff
是必要的:
Java中的所有整数类型都是有符号的
所有按位运算符在执行操作之前将其参数提升为int
(或long
,如果需要)
结果是,如果设置了内容[11]
的高阶位,它将被符号扩展为负int
值。然后需要和使用0xff
将其返回到(正)字节值。否则,当使用内容[12]的结果时因为字节被解释为有符号整数,这意味着,例如,(字节)0x80得到(int)0xffffff80。这被称为符号扩展。Thx用于回复!我不会猜到内容[11]我想,当我将两个值与或组合在一起时,它们将在位级别上按原样使用。Cheers@John如果你对这个答案感到满意(你看起来也很满意),请。
int b1 = 0xffff & (content[12]<<8 | content[11]);