题目

输入整数 n 与非负整数 k,提取并输出 n 的二进制表示中从右往左第 k 位(从 0 开始计数)的值(0 或 1)。

输入格式:输入一行包含两个非负整数 n k,以空格分隔。

输出格式:输出一个数字(0 或 1),表示第 k 位二进制位的值。

数据范围与约定:0 ≤ n ≤ 10^9,0 ≤ k < 32。

思路与算法

1. 右移对齐
n >> k 将目标第 k 位移动到最低位。

2. 掩码提取
与 1 进行按位与运算 (n >> k) & 1 提取最低位。

完整程序

n, k = map(int, input().split())

# 提取二进制第 k 位数值(0 或 1)
print((n >> k) & 1)

运行示例

输入:

13 3

输出:

1