在谈论按位运算符时,符号"0xf00f"是什么意思?

Cre*_*sic 3 bitwise-operators

复制了Java参考手册:

例如,表达式的结果 0xff00 & 0xf0f0 是: 0xf000

表达式的结果 0xff00 ^ 0xf0f0 是: 0x0ff0

表达式的结果 0xff00 | 0xf0f0 是: 0xfff0

这些字母和数字组合在一起意味着什么?

das*_*ght 10

以中开头的数字0x十六进制(基数为16)表示法.他们用数字0-9为十六进制数字0-9和字母A-F为十六进制数10通过15.

十六进制符号比十进制更方便显示位操作,因为基数16是2^4,所以数字对应于四位; 按位运算的结果仅限于一位数; 他们不会"流血"到相邻的数字.

二进制到十六进制的转换表如下:

0000 - 0
0001 - 1
0010 - 2
0011 - 3
0100 - 4
0101 - 5
0110 - 6
0111 - 7
1000 - 8
1001 - 9
1010 - A
1011 - B
1100 - C
1101 - D
1110 - E
1111 - F
Run Code Online (Sandbox Code Playgroud)

您可以使用此表直接替换数字,将十六进制数转换为二进制数.例如,0xF0F0变为1111000011110000二进制.

有了这些替换规则,您可以按照二进制文档中的文本进行操作:

0xff00和0xf0f0是:0xf000

  1111 1111 0000 0000
& 1111 0000 1111 0000
---------------------
  1111 0000 0000 0000
Run Code Online (Sandbox Code Playgroud)

在二进制它更有意义:逐位的结果&1,只有当两个操作数具有1在相应的位; 否则,结果是0.

你应该能够跟随剩下的操作^|更容易为好.