• 二进制总结


    二进制补码:

    0000:0

    1111:-1

    0111:7

    1000:-8

    0110:6

    1001:-7

    -1:0000--》1111

    -n=~n+1

    补码面试题:

    System.out.println(Integer.MIN_VALUE-Integer.MAX_VALUE);   //1000 - 0111--->1000+1001=1

    System.out.println(Integer.MIN_VALUE-1);   //1000 + 1111--->0111=最大值  A
    选择如上代码的运行结果:
    A. 2147483647 B.-2147483648 C.4294967296 D.1 E.-1

    ~ 取反
    System.out.println(~88);
    选择如上代码的运行结果:
    A. 88 B.-88 C.89 D.-89 E.98

    >>> >> << 移位运算

    01100100 2^6+2^5+2^2=64+32+4=100
    m = n<<1; //011001000 2^7+2^6+2^3=128+64+8=200
    k = n<<2; //0110010000 2^8+2^7+2^4=256+128+16=384+16=400
    相当于位移1位,乘2

    >>> 向右移动, 高位永远补0, 负数时候不符合数学除法规律。
    >> 数位向右移动, 高位为1(负数) 则补1, 高位为0(正数) 则补0, 保持符号位不变, 其结果符合数学除法规律(自动向小方向取整)

    & | 与 或 运算
    经典用途: 截取一个数据的后8位, 称为"掩码(mask)"运算
    n = 01100011 00100110 00110111 11011110
    m = 00000000 00000000 00000000 11111111 mask
    k = n&m;
    k = 00000000 00000000 00000000 11011110

    123是十进制,但0123则表示采用八进制, 0x1表示一个16进制数

  • 相关阅读:
    屏幕后处理方案
    颜色空间
    汉字编码
    物理引擎的确定性研究
    关于List<T>.Sort方法
    Mono跨平台系统大小端问题
    谜之UnityEngine.Object
    第三方平台隐私条款
    Unity DownloadHandler测试
    了解Xcode Bitcode
  • 原文地址:https://www.cnblogs.com/liyifang/p/14011446.html
Copyright © 2020-2023  润新知