一 引言
最近在查看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
最后
以上就是冷酷电灯胆最近收集整理的关于二进制位运算的全部内容,更多相关二进制位运算内容请搜索靠谱客的其他文章。
发表评论 取消回复