AcWing
  • 首页
  • 课程
  • 题库
  • 更多
    • 竞赛
    • 题解
    • 分享
    • 问答
    • 应用
    • 校园
  • 关闭
    历史记录
    清除记录
    猜你想搜
    AcWing热点
  • App
  • 登录/注册

n>>1 n<<1 和 n/2的区别

作者: 作者的头像   include4229 ,  2019-12-07 19:35:57 ,  所有人可见 ,  阅读 7477


4


6
  1. 右移运算符 (需要移位的数字 >> 移位的次数)
    将需要移位的数字转化成二进制,将转化完的数字整体向右移动对应位移位数,低位舍弃,高位的空位补符号位(正数补零,负数补1)。
    例:12 >> 2
    12的二进制为1100,将1100整体右移两个单位,因为12为正数,高位填零,变成0011,是十进制中的3.

  2. 左移运算符 (需要移位的数字 << 移位的次数)
    将需要移位的数字转化成二进制,将转化完的数字整体向左移动对应位移位数,高位舍弃,低位的空位补0.
    例:5<<2
    5的二进制为0101,将0101整体左移两个单位,低位补0,得10100,十进制中的20。
    在进行移位的时候,可能存在溢出问题。

  3. /——除法
    结果=被除数/除数
    被除数 除数 结果
    浮点数 浮点数 浮点数
    浮点数 整数 浮点数
    整数 整数 整数
    整数 浮点数 浮点数

    注:5/2的值为2(整除),而用(double)5/2的值则为2.5。
    5%2=1(取余)

  4. >>和/的区别:

    1. 操作对象类型不同
      >>只有整数才能使用
      /整数和浮点数都能够使用。
    2. 运算效率不同
      通常情况下,右移操作比整数除法快。但涉及到浮点数的除法速度是最慢的。
    3. 优先级不同
      >>比/的优先级低,两者同时参与运算,先计算乘除,后计算左移或右移。

0 评论

App 内打开
你确定删除吗?
1024
x

© 2018-2025 AcWing 版权所有  |  京ICP备2021015969号-2
用户协议  |  隐私政策  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标 qq图标
请输入绑定的邮箱地址
请输入注册信息