zoukankan      html  css  js  c++  java
  • 左移右移运算符 & ~取反运算符

    1、左移右移运算符:

    二进制运算的运算符号。
    "<<“和”>>"
    "<<"左移:其实就是x2的移动位数的次幂
    ">>"右移:就是除以2的移动位数的次幂。
    “>>”和“>>>”
    “>>”:最高位补什么,有原有数据的最高位值而定。
    如果最高位是0(代表是正数),右移后,用0补空位。
    如果最高位是1(代表是负数),右移后,用1补空位。

    可能你对负数右移之后用1补空位的结果为什么会等于负数除于2,我们来举个例子:

    负数:-4

    原码:1000 0100(最高位代表符号位,我们简单的用8位来模拟)

    反码:1111 1011(反码除了符号位不取反,其他都取反)

    补码:1111 1100 (补码=反码+1)

    -4右移一位之后

    补码:1111 1110

    反码:1111 1101(反码=补码-1)

    原码:1000 0010(结果就是-2)

    注意:正数的原码、反码、补码都一样


    “>>>”:无论最高位是什么,右移后,都用0补。

     

    2、~取反运算符

    按位取反:二进制每一位取反,0变1,1变0。

    ~9的计算步骤:
    转为原码:0 1001
    计算补码:0 1001
    按位取反:1 0110

    1 0110转为原码(注意现在它是一个负数了):

    反码:1 0101

    原码:1 1010
    符号位为1是负数,即-10

    ~-9的计算步骤:
    转二进制:1 1001
    计算补码:1 0111
    按位取反:0 1000

    0 1000转为原码:

    反码:0 1000

    原码:0 1000(也就是8)

  • 相关阅读:
    Android模拟器访问本地的localhost失败及解决方案
    CSS3 @font-face使用实例
    Web字体库下载及转换工具
    Web中常用字体介绍(转)
    CSS3 @font-face详细用法(转)
    HTML5 Canvas Text文本居中实例
    HTML5 Canvas Text实例1
    Html5 Canvas Text
    Wpf Hyperlink超链接控件使用
    MVC使用Exception过滤器自定义处理Action的的异常
  • 原文地址:https://www.cnblogs.com/kongbursi-2292702937/p/15108330.html
Copyright © 2011-2022 走看看