3. Check if K-th Bit is Set

Back To All Submissions
Previous Submission
Next Submission

Code

#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 >> kn >>= k

 

 

Was this helpful?
Upvote
Downvote