一些基础问题3二进制运算

Posted xiaobingzi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一些基础问题3二进制运算相关的知识,希望对你有一定的参考价值。

&与

规则:0&0=0、0&1=0、1&1=1
例如:6&3=2即0000 0110&0000 0011=0000 0010即2
用法:1.清零,即x&000;2.取一个数的指定位,如取x的低4位,即x&0000 1111

如何判断一个整数是不是奇数----最佳方式
http://blog.csdn.net/wenpengy/article/details/4772280

public static boolean isOdd(int i){
 return (i & 1) != 0 ;
}

|或

规则:0|0=0、0|1=1、1|1=1
例如:6|3=7,即0000 0110&0000 0011=0000 0111即7
用法:使一个数某些位置变1

^异或

规则:0^0=0、0^1=1、1^1=0值不同才是1
例如:6^3=7,即0000 0110^0000 0011=0000 0101即5
用法:1.翻转一个数的指定位,如翻转x的低4位,即x^0000 1111;
2.保留原值,如x^0000 0000
技术图片

~取反

规则:~0=1、~1=0
用法:原码与反码(反码+1得到补码)

<<左移

规则:去掉高n位,低位补0
例如:3<<2=12,即0000 0011 << 2=0000 1100即12,相当于3*2^2=12
用法:

>>右移

规则:去掉低n位,高位补0
例如:3>>1=12,即0000 0011 >>1=0000 0001即1,相当于3/2=1
用法:

>>>无符号右移

规则:
例如:3>>>1=12,即0000 0011 >>>1=0000 0001即1,相当于3/2=1
用法:

以上是关于一些基础问题3二进制运算的主要内容,如果未能解决你的问题,请参考以下文章

Java基础10----运算符3(位运算)

小日记,今天的收获

神奇的位运算

小白的CTF学习之路2——二进制数据基础与运算(上)

Java基础之二进制的位运算介绍

C基础数据类型进制运算符语句