zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    ES6新特性:使用export和import实现模块化
    常见Linux/Unix开发辅助命令什锦
    Spark高速上手之交互式分析
    Lua中的元表与元方法
    explicit 构造函数
    【排序】基数排序(计数排序、桶排序)
    拓展训练—心得体会
    poj3411--Paid Roads(bfs+状压)
    点击单选button后的文字就可以选定相应单选button
    hdu 2349 最小生成树
  • 原文地址:https://www.cnblogs.com/cici-new/p/10493639.html
Copyright © 2011-2022 走看看