java位运算符详讲
一、位运算符分类 java中位运算符主要有:按位与&、按位或|、按位非~、按位异或^。 在使用时,需要将运算数都转换为二进制再进行运算,若为负数则使用补码表示。二、位运算符使用方式 1、按位与&
使用规则:全一则一,否则为零。 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
00000111&11111011:
00000111 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;
三、位运算的意义 二进制运算符,包括位运算符和移位运算符,使程序员可以在二进制基础上操作数字,可以更有效的进行运算, 并且可以以二进制的形式存储和转换数据,是实现网络协议解析以及加密等算法的基础。