输入一个整数 某一位是奇数则变为1 是偶数则变为0 Java程序实现
时间: 2024-10-12 10:05:16 浏览: 38
在Java中,你可以通过位运算来实现这个功能。假设输入的整数是一个整型变量,例如`int num`,你可以使用按位与操作符`&`配合移位操作符`<<`和`>>>`来判断每一位的奇偶性并将该位设置为对应的值。以下是简单的实现:
```java
public class Main {
public static void main(String[] args) {
int num = 12345; // 请输入你要转换的整数
System.out.println(reverseBits(num));
}
// 利用位运算将整数的二进制表示反转奇偶状态
public static int reverseBits(int num) {
// 将原数的二进制左移31位(因为32位中有最高的一位是符号位)
num = num << 31;
// 对每个bit取反(奇变偶,偶变奇),并右移31位
num = num ^ (num >>> 1);
// 再次左移31位,恢复原始数值,但奇偶位已经反转
return num >> 1;
}
}
```
在这个程序中,`reverseBits`函数首先将数字的所有位向左移动31位,这样最高位就变成了最低位。然后,使用异或(XOR)操作对每个位取反,最后再次向左移动一位恢复原数值,但是奇偶位的状态已经被翻转了。
运行这个程序,比如输入12345,如果某一位原本是奇数,那么在输出的数字中对应的位置就会变成0;如果是偶数,则变成1。
阅读全文