zoukankan      html  css  js  c++  java
  • JAVA位运算

      原码 反码 补码(机器码)
    +1 0000 0001 0000 0001 0000 0001
    -1 1000 0001 1111 1110 1111 1111
    +0 0000 0000 0000 0000 0000 0000
    -0 1000 0000 1111 1111  
    备注 第一位是符号位,正数为0,负数为1。 正数不变;负数符号位不变,其余取反。 正数不变;负数在反码的基础上再+1。
    取值范围 [-127,127] [-127,127] [-128,127]
    操作符 描述 运算规则 用途
    & 相对应位都为1时,结果为1

    1.清零:清零指定位上的数 a &= ~(1<<bitIndex),清零整个数 a &=0

    2.取一个数的指定位:判断指定位是否为1 a & (1<<bitIndex) !=0,取后四位 a &=(1<<4) -1

    3.判断奇偶:(a & 1) == 0

    | 相对应位都为0时,结果为0 1.指定某些位设为1 :a |= (1<<bitIndex)
    ^ 异或 相对应位相同为0,相异为1(相异为真,非异为假)

    1.取反使指定位上的数:a ^= (1<<bitIndex)

    2.交换两个数:设 a=0001,b=1010

          a^=b -> a=1011,b=1010

          b^=a -> a=1011,b=0001

          a^=ab -> a=1010,b=0001

    ~ 取反 0变1,1变0 1.清除指定位上的数:a &= ~(1<<bitIndex)
    << 左移 各二进制位全部左移,高位丢弃,低位补0

    1.左移动一位表示*2: a = a<< 1 , 2ⁿ可以用 “1<<n” 表示;

    2.生成特定位为1的数:1<<bitIndex

    >> 右移 符号位不动,其他二进制位全部右移,负数高位补1,正数高位补0 右移动一位表示/2:a = a>> 1;
    >>> 无符号(没有负数)右移 各二进制位全部右移,高位补0

    /2

  • 相关阅读:
    iphone精简教程
    自己搭建云盘 – 简单的PHP网盘程序
    内存泄漏(I)
    App 基本图片配置(I)
    Git 工作环境配置
    MVC(I)
    ReactNative APP基本框架搭建 基于 React Navigation
    UI绘制原理及卡顿 掉帧原因
    ES6中Json、String、Map、Object之间的转换
    Invariant Violation: requireNativeComponent: "RNCWKWebView" was not found in the UIManager.
  • 原文地址:https://www.cnblogs.com/XMXS/p/15076773.html
Copyright © 2011-2022 走看看