zoukankan      html  css  js  c++  java
  • Linux学习---位运算符

    • <<、>>

       ① << 左移  乘以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符号
    • {} 函数体限制符

      

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

      

  • 相关阅读:
    7
    go http请求库HttpRequest
    Golang设计模式
    深挖 go 之 for-range 排坑指南
    go在并发情况下使用map
    Redis知识点总结
    go 条件与循环结构
    数据分析的数据源
    go 生产者消费者模型与发布订阅模型
    go 文件与目录操作
  • 原文地址:https://www.cnblogs.com/BANLOONG/p/10461070.html
Copyright © 2011-2022 走看看