• java中的位运算符 >> ^ ~ & |


    大多数语言都提供了按位运算符,按位运算符在c,c++等语言中运用广泛,而在JS,AS等脚本语言中则没有太多的应用例子,有时候,适当的使用按位运算符会取得很好的效果。

    本文中所有示例,都为1字节8位,具体使用中位数因所使用的编程语言不同,而不同,java int型为4字节32位,位数不同会导致计算结果不同,请注意)。

    char 在java中是2个字节。java采用unicode,2个字节(16位)来表示一个字符。
    char 16位2个字节
    byte 8位1个字节
    short 16位2个字节
    int 32位4个字节
    long 64位8个字节
    float 32位 4个字节
    double 64位8个字节

    按位运算符有6个
    & 按位与
    |按位或
    ^按位异或
    ~取反
    >>右移
    <<左移

    #与(&)运算

    与运算进行的是这样的算法:
    0&0=0,0&1=0,1&0=0,1&1=1

    #非(~)运算

    非运算即取反运算,在二进制中1变0,0变1
    110101进行非运算后为
    001010即1010

    #或(|)运算

    或运算进行的是这样的算法:
    0|0=0,0|1=1,1|0=1,1|1=1

     

    #异或(^)运算

    异或运算通俗地讲就是一句话
    同为假,异为真
    所以它是这样的算法:
    0^0=0,0^1=1,1^0=1,1^1=0


            0 1 0 0 0 0 0 1
            0 1 0 1 1 0 1 0
    产生 0 0 0 1 1 0 1 1

    #移位运算符移位运算符把位按指定的值向左或向右移动

    << 向左移动 而 >> 向右移动,超过的位将丢失,而空出的位则补0
    如 0 1 0 0 0 0 1 1(十进制67) 向左移动两位67<<2将变成
     0 0 0 0 1 1 0 0 (十进制12)当然如果你用java代码写,由于是32位,不会溢出,结果是268
    向右移动两位67>>2则是
    0 0 0 1 0 0 0 0(十进制16)


    原文链接:

    https://blog.csdn.net/zhaoyunfei1/article/details/95312550

    https://blog.csdn.net/chijiandi/article/details/79022473?fireglass_rsn=true

  • 相关阅读:
    golang 多个worker正常关闭的示例
    golang调试工具Delve
    Golang & GitLab-CI 详细实例步骤
    [git] 能在关键时刻救命的git指令
    高效实时数据排行榜实现
    [Golang] 编译程序时打上git提交信息标记
    [Golang] 开源一个帧同步服务器
    Golang etcd服务注册与发现
    Golang pprof详解
    shell 递归枚举文件并操作
  • 原文地址:https://www.cnblogs.com/baxianhua/p/12160547.html
Copyright © 2020-2023  润新知