(byte)-1 参与运算时会转换为int,其二进制形式为-1的补码,即32个1。由于32位中的高16位并不会影响结果,所以我们仅仅对低16位来分析。
(byte)-1 & 0xff => 1111111111111111 & 0000000011111111 => 0000000011111111 => 255
(byte)-1 | 0x00 => 1111111111111111 | 0000000000000000 => 1111111111111111 => -1
由于java默认整数类型为int,所以结果会出现超过byte范围的数。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有