A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© CrazyMan 中级黑马   /  2014-11-25 01:33  /  921 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.按位与 &  :只有对应的两个二进位均为1时,结果位才为1,否则为0。(换算成二进制 同1位1,有0位0)
举例: 9&2 先转换成二进制为1001&0010=0000,9&2==0
利用位与&运算可以判断变量的奇偶性
因为二进制末位是1得为奇数,为0的为偶数
a & 1==1//为奇数
a& 0==0//为偶数

2.按或与 | : 只要对应的二个二进位有一个为1时,结果位就为1,否则为0。(换算成二进制 同0位0,有1位1)
举例:9|2  >1001|0010=1011,即就是9|2==11

3.按位异或 ^ :当对应的二进位相异(不相同)时,结果为1,否则为0。
要点:
(1)相同数值进行异或,结果肯定为0,1^1=0
(2)交换 9^5^7 ==9^7^5
(3)任何数值跟0进行异或,结构还是原来的数值.8^0==0
根据以上条件可以得出下面结论
a^c^b == a^a^c ==0^c ==c

根据按位异或^可以用来是交换两个变量的数值
int a =10;
int b=11;
a=a^b;
b=a^b;
a=a^b;
输出结果:a=11,b=10

4.~ 取反:对整数a的各二进位进行取反,符号位也取反(0变1,1变0)
没什么说的,就是各种取反就行

5.<< 左移
(1)把整数a的各二进位全部左移n位,高位丢弃,低位补0。左移n位其实就是乘以2的n次方
(2)由于左移是丢弃最高位,0补最低位,所以符号位也会被丢弃,左移出来的结果值可能会改变正负性
规律:9<<1 -> 9 * 2的1次方 == 18
         9<<2 -> 9 * 2的2次方 ==36
          ……….
          9<<n -> 9 * 2的n次方

6.>> 右移
(1)把整数a的各二进位全部右移n位,保持符号位不变。右移n位其实就是除以2的n次方
(2)为正数时, 符号位为0,最高位补0
(3)为负数时,符号位为1,最高位是补0或是补1 取决于编译系统的规定
规律:8>>1 -> 8/2 == 4
         8>>2 -> 8/2的2次方 == 2
         ……...
         8>>n -> 8/2的n次方

1 个回复

倒序浏览
没人看到吗,自己顶一个
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马