Skip to main content

Check if ith Bit is Set or Not

Problem Statement:​

Given two positive integer n and k , check if the kth index bit of n is set or not. Note: A bit is called set if it is 1.

  • Example:

    Examples :

    Input: n = 4, k = 0
    Output: false
    Explanation: Binary representation of 4 is 100, in which 0th index bit from LSB is not set. So, return false.
    Input: n = 4, k = 2
    Output: true
    Explanation: Binary representation of 4 is 100, in which 2nd index bit from LSB is set. So, return true.
    Input: n = 500, k = 3
    Output: false
    Explanation: Binary representation of 500 is 111110100, in which 3rd index bit from LSB is not set. So, return false.

✅ Solution: Bit Manipulation​

class Solution {
public:
bool checkKthBit(int n, int k) {
// Right shift `n` by `k` bits and check the least significant bit
return ((n >> k) & 1) == 1;
}
};


📝 How It Works​

  • The goal is to check if the k-th bit (0-indexed from right) in the binary representation of integer n is set (i.e., is 1).
  • We use bitwise right shift: n >> k shifts the k-th bit to the 0th (LSB) position.
  • Then we AND the result with 1: ((n >> k) & 1) to isolate that single bit.
  • If the result is 1, the k-th bit is set, otherwise it is unset.

Example:

n = 5  => binary: 0101
k = 2
n >> 2 = 0001
0001 & 0001 = 0001 → returns true


🧩 Key Formula​

(n >> k) & 1

This extracts the k-th bit.


⏱️ Time & Space Complexity​

ComplexityValue
TimeO(1)
SpaceO(1)

⚠️ Edge Cases​

  • k >= 32 (for 32-bit integers): May lead to undefined behavior in C++.
  • Negative numbers: Bit operations still work, but beware of signed vs unsigned interpretation.

💡 Other Approaches​

ApproachLogic
Bitmasking(n & (1 << k)) != 0 – Check by creating a mask with only k-th bit set
String-basedConvert to binary string and check k-th from right (inefficient)

Example with bitmasking:

bool checkKthBit(int n, int k) {
return (n & (1 << k)) != 0;
}


  • Check if a number is a power of two
  • Count number of set bits (Brian Kernighan's Algorithm)
  • Flip a specific bit in an integer
  • Set/Unset the Kth bit of a number

🚀 Level Up Your Engineering Mindset

Never Study in Isolation. Join Binary Dose.

Connect with fellow engineers, clear conceptual doubts, and get 2 visual breakdowns & engineering mental models daily across our community channels.

Discord
Official Hub

Discord Community

Start at #welcome-and-rules, say hello in #general-chat, clear doubts, and collaborate with engineers worldwide.

Join Discord Server→
⚡
Daily Knowledge Drops

Daily Visual Deep-Dives

Bite-sized system design schematics, core OS internals, and DSA intuition served right into your feeds every single day.

💡Have handwritten notes, cheat-sheets, or want to publish a technical article?
Learn How to Contribute→