题目
将整数第 k 位置 1 或清 0
思路
本题对整数第 k 位(从 0 起)做置 1 或清 0。 置 1:n | (1<<k);清 0:n & ~(1<<k)。读入操作类型与 k 后更新 n 并输出。
解题分析
置 1:n |= (1u<<k);清 0:n &= ~(1u<<k)。掩码用 unsigned 避免移位符号问题。
完整程序
import java.io.*;
public class Main {
public static void main(String[] args) {
long n = 8 & 0xFFFFFFFFL;
int k = 1, op = 1;
long mask = 1L << k;
if (op == 1) {
System.out.println(n | mask);
} else {
System.out.println(n & ~mask);
}
}
}
运行示例
输出:
10