Need to check the Least Significant bit is set or not. You are in the right place. I am going to explain how to check the least significant bit is set which means 1 or not set which means 0.

Table of Contents

### Example:

Let the number is 7 then it’s Binary will be ** 1 1 1 ** and the rightmost bit is known as the Least significant bit.

** In above example right most bit is set i.e is 1**.

I am going to discuss two ways of getting the Least significant bit is set or not.

**Simple And Easy Way**

The one of the easiest way is simply divide the number by 2 and check remainder, if remainder is 1 then bit will be set otherwise not set.

*Fact: Why Divide by 2 gives you result*

because when you divide by 2 you are in the first step of converting the number into binary and the remainder decides whether a bit is set or not

```
import java.io.*;
import java.util.*;
class GeeksToCode {
public static boolean check(int n)
{
if( (n%2) == 0)
return false;
else
return true;
}
public static void main (String[] args) {
int t;
Scanner s = new Scanner(System.in);
t = s.nextInt();
if(GeeksToCode.check(t))
System.out.println("Set");
else
System.out.println("Not Set");
}
}
```

We simply use Scanner class to take input and then create a static method check() which takes one argument and tells us whether the bit is set or not. If the bit is set the check() methods return true else return false.

### Input

7

### Output

Set

### Input

4

### Output

Not Set

**Simple And Easy Way** 2.0

There is also another way of detecting whether the Left Most bit is set or not.

By using and with 1 and if result is 1 then left most bit is set otherwise not set. Let me explain you why

Suppose a number 12, Now it’s binary is

*1 1 0 0*

and take another number 13 and it’s binary is

*1 1 0 1*

Now examine both the binary of 12 and 13.

If you take the and of 12 with 1 what will you get

**12 – 1 1 0 0 **

**1 – 0 0 0 1**

**Result 0 0 0 0**

If you take the and of 13 with 1 what will you get

**1**3** – 1 1 0 1 **

**1 – 0 0 0 1**

**Result 0 0 0 1**

As you can see above 12 & 1 evaluate to 0. Since LSB of `12` is `0`. Whereas, `13 & 1`

evaluate to `1` since LSB of `1`3 is `1`.

### Code

```
/*package whatever //do not write package name here */
import java.io.*;
import java.util.*;
class GeeksToCode {
public static boolean check(int n)
{
if( (n&2) == 0)
return false;
else
return true;
}
public static void main (String[] args) {
int t;
Scanner s = new Scanner(System.in);
t = s.nextInt();
if(GeeksToCode.check(t))
System.out.println("Set");
else
System.out.println("Not Set");
}
}
```

Check output here

Try Some more problems