• 二进制运算


    一 引言

        最近在查看JDK1.8的源码,分析integer.java文件,发现用到一些位运算,遂网上了解一番。

    二 正文

     下面的a和b都是整数类型,则:

    含义Pascal语言C语言C#语言Java
    按位与 a and b a & b a & b a & b
    按位或 a or b a | b a | b a | b
    按位异或 a xor b a ^ b a ^ b a ^ b
    按位取反 not a ~a ~a ~a
    左移 a shl b a << b a << b a << b
    带符号右移 a shr b a >> b a >> b a >> b
    无符号右移       a>>> b

       例子:

     按位与 同符号

    0b00000000000000000000000000001011
    0B01111111111111111111111111111111
    0B00000000000000000000000000001011 OK


    按位与 不同符号
    0b00000000000000000000000000001011
    0B10000000000000000000000000000001
    0B00000000000000000000000000000001 OK 


    按位异或 同符号
    0b00000000000000000000000000001011
    0B01111111111111111111111111111111
    0B01111111111111111111111111110100 OK


    按位异或 不同符号
    0b00000000000000000000000000001011
    0B10000000000000000000000000000001
    0B10000000000000000000000000001010 OK


    按位取反 正整数
    0b00000000000000000000000000001011
    0b11111111111111111111111111110100 OK


    按位取反 负整数
    0B10000000000000000000000000000001
    0B01111111111111111111111111111110 OK


    左移2位 正数
    0b00000000000000000000000000001011
    0b00000000000000000000000000101100 OK


    左移2位 负整数
    0B10000000000000000000000000000001
    0B00000000000000000000000000000100 OK

  • 相关阅读:
    Qt进程间通信
    reinterpret
    vs调试技巧
    利用QSystemSemaphore和QSharedMemory实现进程间通讯
    QLocalSocket
    QShareMemory
    qt动态库实现无边框窗体的消息处理 nativeEvent的使用
    BCB6常用快捷键
    1219个人总结
    冲刺二 12.6
  • 原文地址:https://www.cnblogs.com/knsbyoo/p/9032625.html
Copyright © 2020-2023  润新知