题目

取整数的第 k 位二进制(0 起)

思路

读 n、k,输出 (n >> k) & 1,即二进制第 k 位(从 0 起)是 0 还是 1。

解题分析

第 k 位(从 0 起)用 (n>>k)&1。k 超出类型位数时结果未定义,题目一般 k<32。

完整程序

import java.io.*;

public class Main {
    public static void main(String[] args) {
        long n = 13; int k = 3;
        System.out.println((n >> k) & 1);
    }
}

运行示例

输出:

1