我有以下Java代码:
byte value = 0xfe; // corresponds to -2 (signed) and 254 (unsigned)
int result = value & 0xff;
打印时的结果是254,但我不知道这段代码是如何工作的。如果&
运算符是简单的按位运算,那么为什么它不生成一个字节而是一个整数呢?
发布于 2015-05-04 01:59:04
在32位格式系统中,十六进制值0xff
表示十进制形式的00000000000000000000000011111111
,即255(15*16^1+15*16^0)
。并且按位运算符屏蔽了与第一个操作数中相同的8个最右边的位。
https://stackoverflow.com/questions/11380062
复制相似问题