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

  • 相关阅读:
    iOS开发UI篇—Quartz2D使用(图片剪切)
    LeanCloud存取数据
    Pod搜不到类库解决办法
    第三方的工具以及插件
    苹果开发账号申请注意事项
    苹果账号网址汇总
    代码规范
    流媒体
    iOS面试题
    安装 Alcatraz
  • 原文地址:https://www.cnblogs.com/fanwenhao/p/11108348.html
Copyright © 2011-2022 走看看