zoukankan      html  css  js  c++  java
  • Java,C 位移运算符 有符号右移>>与无符号右移>>>


    个人博客 地址:https://www.wenhaofan.com/a/20181029232749

    有符号右移

         正数有符号右移

            首先计算4>>2

            将4转为二进制

            0000 0100

            右移两位,符号位为0,所以高位置0得

            0000 0001

            转二进制得 1

            所以 4>>2 =1

            

         负数有符号右移

            再来计算-4>>2 

            首先我们需要取得-4的补码 补码为反码+1

            反码为正码按位取反

            由正码0000 0100  取反得

            1111 1011

            再+1得

            1111 1100

            右移两位,符号位为1,所以高位置1得

            1111 1111

            此时减一得补码

            1111 1110

            补码转正码得

            0000 0001

            十进制为1,加负号得

            -1

    无符号右移

         正数无符号右移

            6>>>2

            正数无符号右移

            取6的二进制

            0000 0000 0000 0000 0000 0000 0000 0110

            右移2位,最高位置0

            0000 0000 0000 0000 0000 0000 0000 0001

            转为10进制得

            1

            

         负数无符号右移

            -6 >>>2

            先得6的二进制

            0000 0000 0000 0000 0000 0000 0000 0110

            按位取反,得反码

            1111 1111 1111 1111 1111 1111 1111 1001

            反码+1得补码

            1111 1111 1111 1111 1111 1111 1111 1010

            右移,高位置0得

            0011 1111 1111 1111 1111 1111 1111 1110

            转10进制得

            1073741822

  • 相关阅读:
    简单马周游问题1152siicly
    Sicily 1155. Can I Post the lette
    POJ 1007
    给定2个大小分别为n, m的整数集合,分别存放在两个数组中 int A[n],B[m],输出两个集合的交集。
    算法1--
    GAN
    为什么ConcurrentHashMap是弱一致的
    手写HASHMAP
    千万级规模高性能、高并发的网络架构经验分享
    Web 通信 之 长连接、长轮询(转)
  • 原文地址:https://www.cnblogs.com/fanwenhao/p/11108348.html
Copyright © 2011-2022 走看看