C语言位运算整理

(一)>> 
   C语言中的“右移运算符”。一般情况下,它是按位操作
   特点:
         1.双目运算符,就像+、-、*、/一样,格式为(数1)>>(数2)
         2.数1是被操作数,如被减数、被除数等;数2是右移位数。
         3.优先级低,结合性:从左向右运算                                  

0xFFE0 0xFFE1 两个16进制的数

0xFFE0 >> 8 高位往低位移8位
         0xFFE0    转换成二进制 :1111  1111  1110  0000
                              往右移8位  :                    1111  1111               
                              不足的补0  : 0000  0000  1111  1111
          所以    0xFFE0 >> 8   ---->  0x00FF   ----> 0xFF
(二)&
          & 可以作为“按位与”或是“取地址”运算符。
          A.取地址> 作为一元运算符,结果是右操作对象的地址    例如:int  a, *p;         p = &a; // 这里的&作用是取变量a的地址,地址本身是一个抽象的概念,用于表示对象在存储器中的逻辑位置      
          B. 按位与> 这里简单的可以细分为"位操作中的与操作运算符" 和 "逻辑运算中的与运算"
           1.位操作中的与操作运算符     --- 参与运算的两个数各对应的二进位相与,只有对应的两个二进位均为1时,结果才为1,否则为0
            0xFFE0 >> 8 & 0xFF             0xFFE0 >> 8 在上面已经推出来了,相当于  0xFF & 0xFF
            因为这边是高8位往低8位右移        0xFF & 0xFF  --> 0xFF
            0xFFE1 &  0xFF
            0xFFE1  二进制  1111  1111  1110  0001
            0xFF      二进制   0000  0000  1111  1111
                          结果为   0000  0000  1110   0001           转换成16进制 >  0xE1

           2.逻辑运算中的与运算 >  当两个&&一起用的时候,表示为逻辑运算中的与运算
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值