zoukankan      html  css  js  c++  java
  • 重温位运算、原码、反码、补码、以及>>和<<<区别

    一个例子说明原码,反码,补码

    下面进行5和-5的原码,反码,补码表示:

    5的原码:0000 0101

    5的反码:0000 0101

    5的补码:0000 0101

    -5的原码:1000 0101

    -5的反码:1111 1010

    -5的补码:1111 1011

    现在来看位运算

    1、>>表示右移(有符号右移),如:15>>2的结果是3,-31>>3的结果是-4,左边以该数的符号位补充,移出的部分将被抛弃。

        转为二进制的形式可能更好理解(省略左边的三个字节),0000 1111(15)右移2位的结果是0000 0011(3),1110 0001(-31)右移3位的结果是1111 1100(-4)。

    注:  计算机只认识二进制;

      这里介绍-31右移3位的计算过程:

    -31  原码:1001,1111

      反码:1110,0000

      补码:1110,0001

    右移3位得: 1111,1100,则---->1111,1011,-----> 1000,0100(-4)

    2、>>>也表示右移,但是是无符号右移,如:15>>>2的结果是3,-31>>>3的结果是536870908,移出的部分将被抛弃:

        同样转为二进制的形式,00000000 00000000 00000000 00001111(15)右移2位的结果是00000000 00000000 00000000 00000011(3),

        11111111 11111111 11111111 11100001(-31)右移3位的结果是00011111 11111111 11111111 11111100(536870908)。

  • 相关阅读:
    android加固系列—2.加固前先要学会破解,调试内存值修改程序走向
    算法—12.广度优先搜索
    算法—11.深度优先搜索
    算法—10.红黑二叉查找树
    算法—二叉查找树的相关一些操作及总结
    binary_search
    no title
    be face up to early
    Linux虚拟机网络配置
    网络工程问题历史遗留
  • 原文地址:https://www.cnblogs.com/linkmust/p/11338574.html
Copyright © 2011-2022 走看看