赞
踩
左移操作(<<)
规则:
右边空出的位用0填补
高位左移溢出则舍弃该高位。
例如:10 的二进制为 0000 1010 ,那么10左移3为就是 0101 0000,结果就是80.
10<<3 ==80
右移操作(>>)
规则:
左边空出的位用0或者1填补。正数用0填补,负数用1填补。注:不同的环境填补方式可能不同;
低位右移溢出则舍弃该位。
例如:20 的二进制为 0001 0100 ,那么10右移3为就是 0000 0010,结果就是2。
20>>3 ==2
常见应用
左移相当于2,只是要注意边界问题。如char a = 65; a<<1 按照2来算为130;但有符号char的取值范围-128~127,已经越界,多超出了3个数值,所以从-128算起的第三个数值-126才是a<<1的正确结果。
而右移相当于除以2,只是要注意移位比较多的时候结果会趋近去一个非常小的数,如上面结果中的-1,0。
一个是“&”数据按位与,两个“&&”是逻辑与,或也一样。
按位与运算(&)
1、与0相与可清零
2、与1相与可保留原值
按位或运算(|)
1、与0相或可保留原值
2、与1相与可齐设1
异或运算(^)
两个值相等则为0,否则为1。
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0
取反(~)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。