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

这玩意以前上学的时候就是记不到该怎么算,今天一看还蛮简单的

© 2013, 冰冻鱼. 请尊重作者劳动成果,复制转载保留本站链接! 应用开发笔记

发表评论

电子邮件地址不会被公开。 必填项已用*标注