题目

将整数第 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