题目
输入整数 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