#include <stdio.h>
int isKthBitSet(int n, int k) {
// Write your code here
return (n >> k) & 1;
}
int main() {
int n, k;
scanf("%d %d", &n, &k);
printf("%d", isKthBitSet(n, k));
return 0;
}
Solving Approach
在C语言中,位移操作 n >> k 仅是一个生成临时右值 (Rvalue) 的表达式,处理器在寄存器 (Register) 中计算出结果后并不会自动将其写回内存。若需永久改变变量 n 的数据状态,必须显式执行赋值操作 (Assignment),例如 n = n >> k 或 n >>= k。