位运算
位运算符的优先级从高到低为~(按位取反)、(<<、>>)、&(按位与)、^(按位异或)、|(按位或)。
1、位逻辑运算符(用于对二进制进行运算)。
按位取反(~)~0001 1100=1110 0011 //单目运算符,1则为0,0则为1。
按位与(&)0&0=0;0&1=0;1&1=1; //相应位只要有一个是0则结果为0.
按位异或(^)0^0=0;0^1=1;1^1=0; //相应位相同结果为0,不同则为1.(与0运算原数值不变,与1运算原数值取非值)
按位或(|)0|0=0;0|1=1;1|1=1; //相应位只要有一个是1则结果为1,否则为0.
2、移位运算符,移出的位数值将被丢弃,空缺位一律用0补齐。
若两个数据长度不同,系统会将二者按右端对齐。
设a的补码为0011 0100b
左移运算符(<<)
0011 0100<<2.则a==1101 0000; //当移出位为0时相当于a=a*2n,(n为左移位数)
右移运算符(>>)
0011 0100>>2.则a==0000 1101; //相当于a=a/(2n,)(n为右移位数)
注意:1.位运算的对象只能是整型和字符型数据。不能为实型和其它构造性数据。
2 .位运算的值一律是以补码形式参与运算的。
——若谬后易
——若谬后易

浙公网安备 33010602011771号