位运算

来源:互联网 发布:推荐一本学java 编辑:程序博客网 时间:2024/05/17 09:16
1. int b = (~18 | 0xF0) & 0xFF;

System.out.println("b is:" + b);

输出结果为:

b is:253

计算过程如下(假设int是32位):

18->0x 0000 0000 0001 0010

~18-> 0x 1111 1111 1110 1101

0xF0-> 0x 0000 0000 1111 0000 ->默认没有指定的2进制位为0,(没有指定的位数是在这里默认设置呢还是在赋值给b是默认设置呢)

~18|0xF0->0x 1111 1111 1111 1101

0xFF-> 0x 0000 0000 1111 1111

(~18|0xF0) & 0xFF-> 0000 0000 1111 1101

化为十进制: 253