public
void
test_and(){
int
a =
128
;
// 0000 0000 0000 0000 0000 0000 1000 0000
int
b =
129
;
// 0000 0000 0000 0000 0000 0000 1000 0001
//
结果: 1&1 = 1; 0&1 = 0;0&0 = 0
a = a&b;
// 0000 0000 0000 0000 0000 0000 1000 0000
System.out.println(
"a&b = "
+a);
// 结果: 1|1 = 1; 0|1 = 1;0|0 = 0
b = a|b;
// 0000 0000 0000 0000 0000 0000 1000 0001
System.out.println(
"a|b = "
+b);
// 结果: 1^1 = 0; 0|1 = 1;0|0 = 0
a = a^b;
// 0000 0000 0000 0000 0000 0000 0000 0001
b = a^b;
// 0000 0000 0000 0000 0000 0000 1000 0000
a = b^a;
// 0000 0000 0000 0000 0000 0000 1000 0001
System.out.println(
"a^b 之后: a = "
+a +
" b = "
+b);
//发现这样异或,数值交换了
int
c =
42
;
// 0010 1010 ~= 1101 0101 => 1010 1011
c = ~c;
// java 採用反码计数 负数的反码 = 取反+1(还是负数)
System.out.println(
"~c c = "
+c);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步