首先~
是按位取反,不是相与&
在java中int型占用4
字节,所有的字面整型
常量,没有特别后缀一律当做int型。
即整型常量0b11111110
实际的内存形式是这样的00000000
00000000
00000000
11111110
~0b11111110
的值是下面这样存储的11111111
11111111
11111111
00000001
因为负数存储的是反码形式,还原成原码就是下面这样(减一再取反)10000000
00000000
00000000
11111111
对应的十进制也就是-255
要实现你要的效果你应该这么定义byte c = (byte) ~0b11111110;