按位运算符(>> << ~ & ^ | )及实例

1.移位运算符 :运算符<<和运算符>>的操作数可以是任意整型或字符型的。对两个操作数都会进行整型提升,返回的类型是左边操作数提升后的类型。

   i<<j的值是将i中的位左移j位后的结果。每次从i的最左端溢出一位,在i的最右端补一个0位。

   i>>j的值是将i中的位右移j位后的结果。如果i是无符号数或者非负数,则需要左端补一个0位。如果i是负数,其结果由实现定义的。

 例如:

  unsigned int i,j;

  i = 13;          //  i的二进制数为:            0000000000001101

  j = i << 2;    //  j的值为52,二进制为:0000000000110100

  j = i >> 2;   //j的值为3    二进制为:     0000000000000011

 2.按位求反运算符 (~)    按位与运算符(&)      按位异或运算符(^)    按位或运算符(|):这四种运算符都是对操作数的每一位执行布尔运算。

   ~ 运算符:对操作数求反操作,即将每一个0替换成1,把每一个0替换成1;

    & 运算符:两个操作数相应的位执行逻辑与运算。

    ^ 和 | 运算符:  都是对两个操作数执行逻辑或运算,差异是当两个操作数的位都是1时,^产生0而|产生1.


例如:

  int i, j,k;

  i = 21 ;      //二进制数为:                     0000000000010101

  j = 56 ;     // 二进制数为:                     0000000000111000

  k = ~i ;    // k = 65514  二进制数为:    1111111111101010

  k = i ^ j;    // k = 45      二进制为:         0000000000101101

  k = i & j;    // k = 16   二进制为:           0000000000010000

  k = i | j ;    //   k = 61   二进制为:          0000000000111101


优先级: 由高到低:    ~  &   ^   |  

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值