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

    一、位运算

    (1)按 位 与 &

    如果两个相应的二进制形式的对应的位数都为1,则结果为1,记为同1为1,否则为0。首先我们看一下对正数的运算

          

    分别看一下正数和负数的具体运算步骤

                       正数直接取二进制运算,负数取反加一得补码再运算,得到的结果符号位为0,不需要做任何操                                                                                                                                    作直接给出结果,后面会讲到如果结果为负数的情况

    (2)按位或 |

      有1为1,否则为0

            

    分别看一下正数和负数的具体运算步骤

           

    讲一下负数求反和补码的直接给结果,当运算结果符号位是1为负数,那就需要进行减1操作,再按位取反,这个时候得到的才是正确的结果

    (3)异或 ^

    相同为0,不同为1

           

    二、移位运算

    (1)左 移 (<< )

     右边空出的位用0填补高位左移溢出则舍弃该高位。计算机中常用补码表示数据,注,用补码计算

           

    (2)右 移 (>> )

     左边空出的位用0或者1填补。正数用0填补,负数用1填补。注:不同的环境填补方式可能不同;低位右移溢出则舍弃该位。

            

    (3)无 符 号 右 移 (>>> )

     无符号右移:正数与右移规则一样,负数的无符号右移,就是相应的补码移位所得,在高位补0即可

            

     

  • 相关阅读:
    HDU 5640 King's Cake
    HDU 5615 Jam's math problem
    HDU 5610 Baby Ming and Weight lifting
    WHU1604 Play Apple 简单博弈
    HDU 1551 Cable master 二分
    CodeForces659C Tanya and Toys map
    Codeforces 960E 树dp
    gym 101485E 二分匹配
    Codeforces 961E 树状数组,思维
    Codeforces Round #473 (Div. 2) D 数学,贪心 F 线性基,模板
  • 原文地址:https://www.cnblogs.com/jeasonit/p/10266060.html
Copyright © 2011-2022 走看看