【每天掌握一点点】Day02-左移右移运算符

93 阅读1分钟
  1. 介绍

    左移<<及右移>>是位运算符,本质上是对二进制数字的处理

    其运算效率要优于常见的×÷数学运算符

    故它也会经常出现在在很多源码及算法中

  2. 左移

    左移,将数字的二进制位左移X位后,进行低位补0

    其操作本质是乘以2的移动位数次方

    公示如下:x>>y=x2yx >> y = x * 2^{y}

    示例如下:假设我们要对3左移3位

    即:3>>3=323=38=243 >> 3 = 3 * 2^{3} = 3 * 8 = 24

  3. 右移

    右移,将数字的二进制位右移X位,进行高位补0

    • 带符号的数字位原数字最左侧的符号位(正0、负1

    针对负数,需要先对二进制数进行反码再进行补码

    • 反码:除最左侧符号位外,其余数值全部取反(如0 > 1,1 > 0

    • 补码:对反码进行+1操作