位运算

作者: JopYin | 来源:发表于2019-08-15 13:11 被阅读0次

    1.原码、反码、 补码
    正数的原码、反码、 补码都一样 正数以原码存储在计算机
    负数 以补码存储在计算机

    例:17 原码、反码、补码 都是 0001 0001
    -15在计算机中存储是补码11110001
    原码:1000 1111
    反码:1111 0000
    补码:1111 0001

    2.取反 NOT ( ~ )
    一元运算符 二进制各位是数字1成为0 0成为1

    3.按位或 OR ( | )
    两个二进制数,只要有1该位计算后值为1

        1011 0010
        0001 1010
    OR |-----------
        1011 1010
    

    4.按位与AND ( & )
    都是1 才为1否则是0

          1001 1101
          0111 1000
    AND &-----------
          0001 1000
    

    5.按位异或XOR ( ^ )
    不相同为1 相同为0

            1010 1110                         
            1001 1010                         
    XOR ^ --------------
            0011 0100  
    

    **6.左移<< **
    汇编左移符号 shl
    用来将一个数各二进制位全部向左移动若干位。高位丢弃 低位补0

        0001 0110                               0001 0110      //22
    <<1----------                          <<2-------------
        0010 1100                               0101 1000     //88
    

    注意,观察可以发现,左移一位的结果就是原值乘2,左移两位的结果就是原值乘4

    **6.右移>> **
    汇编右移符号 sar高位补1 shr 高位补0
    用来将一个数各二进制位全部向左移动若干位。高位补0或符号位 低位丢弃

            0110 1010           0110 1010      //
    >>2 sar ----------     shr ----------
            0001 1010           1101 1010
    

    注意,观察可以发现,右移一位的结果就是原值除2,右移两位的结果就是原值除4,取整

    相关文章

      网友评论

          本文标题:位运算

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