原码、反码、补码、位运算
Java中的位运算是对二进制数进行的运算,常见的位运算符包括与(&)、或(|)、异或(^)、取反(~)等。反码和补码是计算机中表示负数的方式,反码是将数值的二进制表示中的0和1互换,补码是在反码的基础上加1。
一、原码、反码、补码
1. 原码
原码数值的二进制表示其中第一位表示符号, 其余位表示值,正数符号位为0
,负数符号位为1
,下面用1为例
+1 : 00000001
-1 : 1000001
2. 反码
正数的反码是其原码本身,负数的反码是在其原码的基础上,符号位不变
,其余各个位取反
+1:0000 0001
-1:1111 1110
3. 补码
正数的补码就是其原码本身,负数的补码是在其原码的基础上,符号位不变
, 其余各位取反,最后+1。
+1:0000 0001
-1:1111 1111
二、在Java中的使用
public class BitwiseOperations {
public static void main(String[] args) {
int a = 5; // 二进制表示为 0000 0101
int b = 3; // 二进制表示为 0000 0011
// 与(&)运算
int resultAnd = a & b; // 结果为 0000 0001,即1
System.out.println("与(&)运算结果:" + resultAnd);
// 或(|)运算
int resultOr = a | b; // 结果为 0000 0111,即7
System.out.println("或(|)运算结果:" + resultOr);
// 异或(^)运算
int resultXor = a ^ b; // 结果为 0000 0110,即6
System.out.println("异或(^)运算结果:" + resultXor);
// 取反(~)运算
int resultNotA = ~a; // 结果为 1111 1010,即-6
System.out.println("取反(~)运算结果:" + resultNotA);
// 计算反码和补码
int negativeNumber = -5; // 要表示的负数
int complement = ~negativeNumber + 1; // 计算补码
System.out.println("负数的补码表示:" + complement);
}
}
上一篇 为什么说重写equals方法也要重写hashCode方法。 |
欢迎点赞、收藏、评论!!!
| 下一篇 Java原生定时任务的实现。 |