-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathBinaryToDecimal.java
37 lines (37 loc) · 1012 Bytes
/
BinaryToDecimal.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class BinaryToDecimal {
public static void main(String[] args) {
String binary = "101110";
// System.out.println(binaryToDecimal(binary));
System.out.println(bitExtracted(Integer.parseInt(binary, 2), 3, 0));
}
public static int bitExtracted(int number, int k, int p)
{
// 0111
//01110
//00110
// left shift
// 0111
int a = ((1 << k) - 1);
// right shift
int b = (number >> (0));
return (a & b);
}
public static int binaryToDecimal(String binary){
int size = binary.length() - 1;
int decimal = 0;
int count = 0;
while (size>=0) {
char current = binary.charAt(size);
if (current == '1') {
decimal += Math.pow(2, count);
count++;
}else{
count++;
size--;
continue;
}
size--;
}
return decimal;
}
}