zoukankan      html  css  js  c++  java
  • 位运算

    位运算提供了可以直接针对bit进行形象上的操作。

    • &

    规则:相当于乘法,全1位1.

    0 & 0 = 0
    0 & 1 = 0
    1 & 0 = 0
    1 & 1 = 1
    
    • |

    规则:全0为0

    0 | 0 = 0
    0 | 1 = 1
    1 | 0 = 1
    1 | 1 = 1
    

    既然是位运算,少不了要给某一位写1,以及清除某一位上的数据。
    假设有数据A.
    给第n位写1:A | (1 << n )
    清除第n位:A & ~(1 << n)

    • 异或^

    规则:半加运算,即加法不进位(布尔环)

    0 ^ 0 = 0
    0 ^ 1 = 1
    1 ^ 0 = 1
    1 ^ 1 = 0
    

    对于一个8bit数 A,有:

    A ^ 0x00 = A
    A ^ A = 0x00
    A ^ 0xFF = ~A
    A ^ (~A) = 0xFF
    

    如果有两个数:A B
    有:

    A ^ B = C
    A ^ C = A ^ ( A ^ B ) = A ^ A ^ B = 0x00 ^ B = B
    

    所以,实现两个参数的互换会看到:

    A ^= B
    B ^= A
    A ^= B
    
    • 取反~

    • 移位操作

    • 左移<<
      对于在可接受的范围内:相当于乘以2

    A << N = A*2^N	
    
    • 右移>>
      对于在可接受的范围内:相当于除以2.
    A >> N = A/2^N 
    
  • 相关阅读:
    前端Javascript
    第十一周双闭环控制
    补第九周手绘图
    第十一周仿真作业
    第九周PLECS仿真
    第五六周读书笔记
    PLECS模拟与设计结构-4
    机电传动控制读书笔记-3
    PLECS仿真报告2
    PLECS仿真报告
  • 原文地址:https://www.cnblogs.com/ply616/p/5804417.html
Copyright © 2011-2022 走看看