位运算符总结

简介: 版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/55273954 ...
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/55273954

and运算 &

与运算: 相同位置的两个数都为1则为1,若有一个不为1,则为0.

00101 & 11100
–00100

        int data = 100;
        System.out.println("data-->" +Integer.toBinaryString(data));
        System.out.println("64-->"+Integer.toBinaryString(64));
        int s =  data & 0x40;
        System.out.println("& result-->"+Integer.toBinaryString(s));

结果是:
data–>1100100
64–>1000000
& result–>1000000

or运算 |

或运算: 相同位置有一个或多个1则为1,若都为0则为0

00101 | 11100
11101

xor运算 ^

异或运算: 相同位置上的值不相同则为1,相同则为0

00101 ^ 11100
11001

not运算 ~

取反运算: 把内存中的0和1全部取反
无符号:得到的值就是它与类型上界的差
实例
data—>1100100
64—->1000000
~data—->11111111111111111111111110011011
~data的十进制—–>-101

shl运算 <<

左移运算: a shl b 表示把a转换为二进制后左移b位(在后面添b个0)
例如 100的二进制表示为1100100,而110010000表示400,所以100 shl 2=400
所以 a shl b 实际上是a乘以2的b次方

shr运算 >>

右移运算: a shr b 表示a的二进制右移b位(去掉末尾b位),相当于a除以2的b次方(取整)

用shl 或 shr 要比直接用乘除运算块的多,因为后者是更接近底层的操作。

相关文章
|
6月前
|
C语言
基本的算术运算符
基本的算术运算符
63 1
|
1月前
|
Shell Perl
算术运算符
【10月更文挑战第16天】
19 3
|
6月前
|
C++
C++程序中的算术运算符
C++程序中的算术运算符
64 2
|
4月前
|
存储 算法 安全
day10:算术运算符
【7月更文挑战第10天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
29 3
|
5月前
|
Python
位运算符
【6月更文挑战第28天】位运算符。
34 1
|
5月前
|
存储 编译器 C++
C++中的位运算符
C++中的位运算符
27 0
|
6月前
|
编译器 C++
c++算术运算符
c++算术运算符
37 0
|
6月前
|
存储
位运算符和位操作符
位运算符和位操作符
31 0
|
C语言
C/运算符(按位与、按位或、按位异或)
C/运算符(按位与、按位或、按位异或)
C#中算数运算符及逻辑运算
C#中算数运算符及逻辑运算
81 0