个人总结之位运算和与运算

来源:互联网 发布:excel数据比对怎么做 编辑:程序博客网 时间:2024/05/22 08:13

位移运算符

<<:

表示左移,左移的N位数,表示原来的数乘以2*N。向左移动一位就等同于原来的数乘以了2。

例子:a<<num,将a向左移num的位数。运算原理就是将a(十进制)转换为二进制表达形式,剔除num个最高位,将剩余的数字按按顺序向左移动num位,在最低位补num个0。

如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取模。如对int型移动33位,实际上只移动了33%32=1位。如果左移的是byte 和short类型的,他们会自动转换成int类型。在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方 

同理,

>>:

表示右移,右移N位数,表示原来的数除以2*N。向右移动一位就等于原来的数除以2.

例子:a>>num,将a向右移num的位数。运算原理就是将a(十进制)转换为二进制表达形式,剔除num个最低位,将剩余的数字按按顺序向右移动num位,在最高位补num个0。


位运算符包括: 与(&)、非(~)、或(|)、异或(^)


  &:当两边操作数的位同时为1时,结果为1,否则为0。如1100&1010=1000 


      | :当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110 


      ~:0变1,1变0                                                     


      ^:两边的位不同时,结果为1,否则为0.如1100^1010=0110
0 0
原创粉丝点击