位运算

作者: 何奔奔 | 来源:发表于2019-02-01 11:30 被阅读0次

概念
        数字用二进制表示,每位要么是0要么是1,并在此基础上进行运算。
        Bitwise is a level of operations that involves working with individual bits, which are the smallest units of data in a computer.
        我们平时用的数字是十进制,每位是0到9中的一个。

应用
        此处只是抛砖引玉,应用场景应该很多!
        1. 用来判断整数是否是偶数
        2. 用来判断正式是否是2的n次幂

内容
        常用的位运算有 &、|、^、<<、>>、>>>、~
        & 中文叫与运算,英文叫 bitwise and
        0 & 0 = 0;
        1 & 0 = 0;
        0 & 1 = 0;
        1 & 1 = 1;

        | 中文叫或运算,英文叫bitwise or
        0 I 0 = 0;
        0 | 1 = 1;
        1 | 0 = 1;
        1 | 1 = 1;

        <<中文叫左移,英文叫left shift
        6<<2等于多少呢
        6用二级制表示是00000000000000000000000000000110    
        左移2位,然后右边空出了两位,正整数补0或负整数补1。就变成00000000000000000000000000011000
        00000000000000000000000000011000 再用十进制表示就是24.
        即 6<<2=24,相当于 6 * (2*2)=24

        >>叫右移,英文叫right shift
        6>>2等于多少呢
        6用二级制表示是00000000000000000000000000000110
        右移两位,然后左边空了两位,正整数补0或负整数补1。就变成了00000000000000000000000000000001
        00000000000000000000000000000001再用十进制表示就是1.
        即6>>2=1,相当于6/(2*2)=1

        ^叫异或,也许叫异更准确点,英文叫exclusive or
        0 ^ 0 = 0;
        1 ^ 0 = 1;
        0 ^ 1 = 1;
        1 ^ 1 = 0;

        ~叫,也叫位非,英文叫bitwise not
        它是一元运算,即只要一个元素参与
        ~ 0 = 1;
        ~ 1 = 0;
    
     

        >>>叫无符号右移,英文叫logical right shift
        6 >>> 2也是等于1
        -6 >>> 2等于多少呢
        -6用二进制表示11111111111111111111111111111010
        右移两位,然后左边空出两位补零,就变成00111111111111111111111111111110
        00111111111111111111111111111110在用十进制表示就是1073741822。
        注:这里以32位整数来计算的,如果是64位,其运算结果是不一样

优点
        在许多古老的微处理器上,位运算比加减运算略快,通常位运算比乘除法运算要快很多。在现代架构中,情况并非如此:位运算的运算速度通常与加法运算相同(仍然快于乘法运算)
        网友有篇关于它位运算速度文章:https://blog.csdn.net/qq_36523667/article/details/79321594 

缺点    
        和我们从小用的十进制不一样,使得它比较难以理解。

相关文章

  • 3、小众运算符の大课堂(一)

    较为简单の位运算符: & 位与运算| 位或运算^ 位异或运算~ 位取反运算 举例: 要做位运算,首先要把数据转...

  • 位运算及其应用

    内容概要: 位运算基本操作 基于位运算的状态压缩 位运算经典应用 位运算解N皇后问题 位运算 符号描述规则&与1&...

  • 位运算及用位运算实现权限控制

    请自行补习位运算相关知识 位运算 位运算示例 权限控制

  • 开发基础随笔之位运算符(Bitwise Operators)

    位运算符,属于算术运算符 按位逻辑运算符: 位移运算符: 位运算符的运算数只能是整数 位移运算符:按位左移 a<<...

  • 强大的位运算符

    位取反运算符 位取反运算符(~)是对所有位的数字进行取反操作位取反运算符.png 位与运算符 位与运算符(&)可以...

  • 位运算

    位运算 1. &:按位与 规律:一假则假任何位上的数和1相&得到的结果还是那个数 2. |:按位或 规律:一真则真...

  • 位运算

    https://leetcode.com/problems/gray-code/description/这个位运算...

  • 位运算

    位运算符比一般的算术运算符速度要快,而且可以实现一些算术运算符不能实现的功能。如果要开发高效率程序,位运算符是必不...

  • 位运算

    1.不用加减乘除做加法 解法:分为三步①各位相加不进位,即先按位异或;②做进位,按位与并左移位;③结果相加,直至没...

  • 位运算

    位运算不仅可以简化某些复杂的操作,而且具有更快的计算速度。典型的应用就是除法,交换两个数值,以及在一个数组中寻找只...

网友评论

      本文标题:位运算

      本文链接:https://www.haomeiwen.com/subject/gzgrsqtx.html