1 操作符
(1)移位操作符
左移<<:值最左边的几位丢弃,右边多出来的几个空位用0补齐
01101101
011(丢弃)01101000(后面三位补0)
右移>>:
算术左移和逻辑左移只有操作数是负值的时候才不一样。算术移位,左边移入的位由原先该值的符号位决定,符号位为1则移入的位均位1,符号为0则移入的位均为0,因为这样可以保证原来数的正负不变。
10010110右移2位,逻辑移位为00100101,算术移位11100101
案例1:
1 //计算1的位的个数 2 int count_one_bits(unsigned value) 3 { 4 int ones; 5 for(ones=0;values!-0;value=value>>1) 6 { 7 if(value%2!=0) 8 { 9 ones=ones+1; 10 } 11 } 12 return ones; 13 }