首页 > 系统服务 > 详细

Linux学习---位运算符

时间:2019-03-02 15:10:22      阅读:172      评论:0      收藏:0      [点我收藏+]
  • <<、>>

   ① << 左移  乘以2^n

    m << n    m*(2^n)   

    eg:4:  0 0 1 0 0 

      8:   0 1 0 0 0

    [数据、数字]移位

    左移:右侧补0

    1 0 0 0 0 0 0 1        1 0 0 0 0 0 1 0

    1 1 1 1 1 1 1 0        1 1 1 1 1 1 0 1

    1 1 1 1 1 1 1 1 ====》-1     1 1 1 1 1 1 1 0    ====》-2

    右移:补符号 (整数补0,负数补1)

    ②>> 右移  除以2^n

  • &(与)清零器

    ①屏蔽

      eg:int a = 0x1234

        a & 0xff00;   屏蔽低八位,取出高8位。

    ②取出

      eg:A & 1 => A

  •  |   (或)设置

    ①保留

      eg:A | 0 ===A

        A | 1 ===1

    

注:eg:设置一个资源的5bit为高电平,其他为不变。

  int a;

  a = ( a | (0x1<<5));  ======> a | (0x1<<5);

  eg:清除第五位

  a = a & ~(0x1<<5); ======> a = a & (~(0x1<<n))

 

  • ^ (异或)

    1 ^ 1 = 0, 0 ^ 0 = 0‘

    1 ^ 0 = 1;

  • ~ (取反)

    0xf0  ~   0xffff ff0f

 

  • ()

  ①限制符  (a+b)*c

  ②函数访问  int fun();

 

  • []  内存访问的ID符号

 

  • {} 函数体限制符

  

  • ->  地址访问
  • .    变量访问

 

  

 

Linux学习---位运算符

原文:https://www.cnblogs.com/BANLOONG/p/10461070.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!