Skip to content

Commit 6ebdbe2

Browse files
Merge pull request #111 from Nishitbaria/main
Bit Manipulation
2 parents fa5b428 + b212665 commit 6ebdbe2

File tree

6 files changed

+116
-0
lines changed

6 files changed

+116
-0
lines changed
1.08 KB
Binary file not shown.
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
public class BitOperations {
2+
//Get ith Bit
3+
public static int getIthBit(int n, int i) {
4+
int bitMask = 1<<i;
5+
return (n & bitMask) == 0 ? 0 : 1;
6+
}
7+
8+
//Set ith Bit
9+
public static int setIthBit(int n, int i) {
10+
int bitMask = 1<<i;
11+
return n | bitMask;
12+
}
13+
14+
//Clear ith Bit
15+
public static int clearIthBit(int n, int i) {
16+
int bitMask = ~(1<<i);
17+
return n & bitMask;
18+
}
19+
20+
//Update ith Bit
21+
public static int updateIthBit(int n, int i, int val) {
22+
//Method1
23+
// if(val == 0) {
24+
// return n & (~(1<<i));
25+
// } else {
26+
// return n | (1<<i);
27+
// }
28+
29+
//Method2
30+
n = clearIthBit(n, i);
31+
int bitMask = val<<i;
32+
return n | bitMask;
33+
}
34+
35+
//Clear Last i Bits
36+
public static int clearLastIbits(int n, int i) {
37+
int bitMask = (~0)<<i; // or (-1)<<i
38+
return n | bitMask;
39+
}
40+
41+
//Clear Bits in Range (i,j)
42+
public static int clearBitsinRange(int n, int i, int j) {
43+
int a = ~0<<i;
44+
int b = (1<<i)-1;
45+
int bitMask = a | b;
46+
return n & bitMask;
47+
}
48+
49+
//Check if number is power of 2 or not
50+
public static boolean isPowerof2(int n) {
51+
return (n & (n-1)) == 0;
52+
}
53+
54+
//Count number of set bits
55+
public static int countSetBits(int n) {
56+
int setBits = 0;
57+
int bitMask = 1;
58+
while(n != 0) {
59+
if((n & bitMask) != 0) { //last bit is 1
60+
setBits++;
61+
}
62+
n = n>>1;
63+
}
64+
return setBits;
65+
}
66+
67+
//a faster method to count set bits
68+
public static int countSetBits2(int n) {
69+
int setBits = 0;
70+
while(n>0) {
71+
// removes the last set bit from curr number
72+
n = n & (n-1);
73+
setBits++;
74+
}
75+
return setBits;
76+
}
77+
public static void main(String args[]) {
78+
System.out.println(countSetBits(9));
79+
}
80+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
public class BitwiseOperators {
2+
public static void main(String args[]) {
3+
int a = 0;
4+
System.out.println(~a);
5+
}
6+
}
555 Bytes
Binary file not shown.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
public class FastExponentiation {
2+
//to calculate a^n
3+
public static int pow(int a, int n) {
4+
int ans = 1;
5+
6+
while(n > 0) {
7+
if((n&1) != 0) { //checking bit is 0 or 1
8+
ans = ans * a;
9+
}
10+
a = a*a;
11+
n = n>>1;
12+
}
13+
14+
return ans;
15+
}
16+
public static void main(String args[]) {
17+
System.out.println(pow(5,3));
18+
}
19+
}

Java/5_Bit Manipulation/OddEven.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
public class OddEven {
2+
public static void main(String args[]) {
3+
int n = 10;
4+
int bitMask = 1;
5+
if((n & bitMask) == 0) {
6+
System.out.println("even");
7+
} else {
8+
System.out.println("odd");
9+
}
10+
}
11+
}

0 commit comments

Comments
 (0)