位运算

位运算符的优先级从高到低为~(按位取反)、(<<、>>)、&(按位与)、^(按位异或)、|(按位或)。

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 .位运算的值一律是以补码形式参与运算的。

 ——若谬后易

posted @ 2021-02-26 20:48  阿良·  阅读(186)  评论(0)    收藏  举报