java位运算符详讲
一、位运算符分类
java中位运算符主要有:按位与&、按位或|、按位非~、按位异或^。
在使用时,需要将运算数都转换为二进制再进行运算,若为负数则使用补码表示。
二、位运算符使用方式
1、按位与&
java中位运算符主要有:按位与&、按位或|、按位非~、按位异或^。
在使用时,需要将运算数都转换为二进制再进行运算,若为负数则使用补码表示。
二、位运算符使用方式
1、按位与&
使用规则:全一则一,否则为零。
eg:计算7&-5的结果
第一步:byte中的二进制
7的二进制
被除数 除数 商 余数
7 2 3 1
3 2 1 1
1 2 0 1
7的二进制为:00000111
eg:计算7&-5的结果
第一步:byte中的二进制
7的二进制
被除数 除数 商 余数
7 2 3 1
3 2 1 1
1 2 0 1
7的二进制为:00000111
-5的二进制
被除数 除数 商 余数
5 2 2 1
2 2 1 0
1 2 0 1
-5的二进制为:10000101
-5的补码为: 11111010 + 1 11111011
被除数 除数 商 余数
5 2 2 1
2 2 1 0
1 2 0 1
-5的二进制为:10000101
-5的补码为: 11111010 + 1 11111011
00000111&11111011:
00000111
11111011
00000011——>对应十进制的3
11111011
00000011——>对应十进制的3
②、按位或|
使用规则:全0为0,否则为1;
eg:byte位的 2|-6
2的二进制位: 0000 0010
-6的二进制位:1000 0110
-6的补码: 1111 1010
运算结果: 1111 1010
计算原码: 1000 0110
相当于十进制位的:-6
③、按位非~
使用规则:遇0则1,遇1则0;
eg:~-6
-6的二进制位:1000 0110
-6的补码: 1111 1010
计算结果: 0000 0101
相当于十进制:5
注意:按位非是单目运算符。
④、按位异或^
使用规则:相同位0,否则为1;
eg:2^-6
2的二进制位: 0000 0010
-6的二进制位:1000 0110
-6的补码: 1111 1010
计算结果: 1111 1000
原码: 1000 1000
相当于十进制位:-8;
三、位运算的意义
二进制运算符,包括位运算符和移位运算符,使程序员可以在二进制基础上操作数字,可以更有效的进行运算,
并且可以以二进制的形式存储和转换数据,是实现网络协议解析以及加密等算法的基础。