zoukankan      html  css  js  c++  java
  • 位运算 左移右移运算符 >>, <<, >>>

    基本知识

    左移右移运算符

    1-左移运算符m<<n,表示把m左移n位。左移n位的时候,最左边的n位数将被丢弃,同时在最右边补上n个0。例如:

    00001010<<2 = 00101000

    10001010<<3=01010000

    2-右移运算符m>>n表示把m右移n位。右移n位的时候,最右边的n位将被丢弃。同时在最左边补上n个符号位。例如:

    00001010>>2=00000010

    10001010>>3=11110001

    注意:机器存储的是补码,直接用补码进行计算。(机器数用补码的原因:直接把符号位加入运算,这样子可以把减法转换成加法运算)

    正数的原码,补码,反码都是一样的

    负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)

    [+1] = [00000001]原 = [00000001]反 = [00000001]补
    
    [-1] = [10000001]原 = [11111110]反 = [11111111]补

    3-无符号右移运算符m>>>n , 用0补位。例如:

    10001010>>>3=00010001

  • 相关阅读:
    文件输入输出
    快速幂
    Vijos1512 SuperBrother打鼹鼠
    P2564 生日礼物
    P1886 滑动窗口
    P1540 机器翻译
    TYVj1939 玉蟾宫
    P1988 最大数
    二分图匹配
    [GDOI2017集训&做题记录&日记]
  • 原文地址:https://www.cnblogs.com/frankcui/p/10456939.html
Copyright © 2011-2022 走看看