0%

Java 按位操作符计算方法

按位操作符在实际编程中使用不会很多,复习基础时看到,做个笔记吧! 假设a=5,b=6,先转成二进制,a就是00000000 00000000 00000000 00000101,b就是00000000 00000000 00000000 00000110(每个int占4个字节,一个字节8位) 按位与(&):a和b每一位与操作,只有两者都是1结果才是1,其他情况为0,所以,结果是00000000 00000000 00000000 00000100,转成十进制就是4,也就是a&b=4 按位或(|):a和b每一位或操作,有一个是1,结果就是1,两个都是0时为0,所以,结果是00000000 00000000 00000000 00000111,转成十进制就是7,也就是a|b=7 按位异或(^):a和b每一位异或操作,只有两个数都不同时才是1,相同时为0,所以,结果是00000000 00000000 00000000 00000011,转成十进制就是3,也就是a^b=3 按位非():一元操作符,每一个取反,00000000 00000000 00000000 00000101每位取反成11111111 11111111 11111111 11111010,00000000 00000000 00000000 00000110每位取反成11111111 11111111 11111111 11111001, 所以a=-6,b=-7 同时支持&=,|=,^=操作,即a&=b相当于a=a&b 二进制负数转十进制: 如上面的a结果是11111111 11111111 11111111 11111010,第一位是1,表明该数为负数。 先减1得到11111111 11111111 11111111 11111001,再取反,得到00000000 00000000 00000000 00000110,就是十进制的6,再加上符号,得到-6 这玩意以前上学的时候就是记不到该怎么算,今天一看还蛮简单的