• java位移运算符2 转


    https://blog.csdn.net/xxx134617/article/details/7454774

    java中int类型占4个字节,二进制用补码表示:

    3的二进制表示: 00000000 00000000 00000000 00000011

    -3的二进制表示:11111111 11111111 11111111 11111101

    1.左移<<:左移位运算符(<<)能将运算符左边的运算对象向左移动运算符右侧指定的位数(在低位补0).

    如:

    3<<1=00000000 00000000 00000000 00000110=6;

    -3<<1=11111111 11111111 11111111 11111010=-6;

    2.有符号右移>>:“有符号”右移位运算符(>>)则将运算符左边的运算对象向右移动运算符右侧指定的位数。“有符号”右移位运算符使用 了“符号扩展”:若值为正,则在高位插入0;若值为负,则在高位插入1。

    3>>1=00000000 00000000 00000000 00000001=1;

    -3>>1=11111111 11111111 11111111 11111110=-2;

    3.无符号右移:

    3>>>1=00000000 00000000 00000000 00000001=1;

    -3>>>1=01111111 11111111 11111111 11111110=2147483646;
    ---------------------

    计算过程:

    -3的源码:

    10000000 00000000 00000000 00000011

    反码:除符号位取反

    11111111 11111111 11111111 11111100

    补码:除符号位+1

    11111111 11111111 11111111 11111101

    -3<<1

    计算机中的二进制表示(-3的二进制补码)

    11111111 11111111 11111111 11111010

    转十进制数

    1)除去符号位减1

    11111111 11111111 11111111 11111001 

    2)除去符号位,按位取反;结果就是负数的源码;

    10000000 00000000 00000000 00000110 

    -                  6

  • 相关阅读:
    分布式数据库拆分表常用的方法
    linux服务器502错误详解【转载】
    全国各城市代码
    Linux下git安装
    linux上访问windows目录
    百度技术总监谈12306高性能海量并发网站架构设计
    Ubuntu 10.04 安装无线网卡驱动。
    晕菜, silverlight !
    linux 软件记录.
    硬盘安装 Ubuntu10.04
  • 原文地址:https://www.cnblogs.com/cici-new/p/10493639.html
Copyright © 2020-2023  润新知