-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBitwise.java
More file actions
85 lines (79 loc) · 2.67 KB
/
Copy pathBitwise.java
File metadata and controls
85 lines (79 loc) · 2.67 KB
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
public class Bitwise {
public static String decimalToBinary(int decimal)
{
String Binary = "";
while (decimal != 0)
{
Binary = String.valueOf(decimal%2) + Binary;
decimal = decimal/2;
}
return Binary;
}
public static String[] equaliseLength(String a, String b)
{
//adds 0's to the beginning of the shorter string, to make them equal length
while(a.length() != b.length())
{
if(a.length() > b.length()) b = "0" + b;
else a = "0" + a;
}
String[] returnBinary = {a,b};
return returnBinary;
}
public static String bitwiseAnd(String a, String b)
{
String bitwised = "";
String[] callEqualiseArray = equaliseLength(a,b);
a = callEqualiseArray[0];
b = callEqualiseArray[1];
//each 0 and 1 is compared to a corresponding 0 or 1, if they're both 1 the resulting return is also 1
for(int i = 0; i < a.length();i++)
{
if(a.charAt(i) == '1' && b.charAt(i) == '1') bitwised = bitwised + "1";
else bitwised = bitwised + "0";
}
return bitwised;
}
public static String bitwiseOr(String a, String b)
{
String bitwised = "";
String[] callEqualiseArray = equaliseLength(a,b);
a = callEqualiseArray[0];
b = callEqualiseArray[1];
//each 0 and 1 is compared to a corresponding 0 or 1, if they're both 1 the resulting return is also 1
for(int i = 0; i < a.length();i++)
{
if(a.charAt(i) == '1' || b.charAt(i) == '1') bitwised = bitwised + "1";
else bitwised = bitwised + "0";
}
return bitwised;
}
public static String bitwiseXor(String a, String b)
{
String bitwised = "";
String[] callEqualiseArray = equaliseLength(a,b);
a = callEqualiseArray[0];
b = callEqualiseArray[1];
for(int i = 0; i < a.length();i++)
{
if(a.charAt(i) == b.charAt(i)) bitwised = bitwised + "0";
else bitwised = bitwised + "1";
}
return bitwised;
}
public static int binaryToDecimal(String binaryString)
{
int binaryDigit = 0;
int sumInt = 0;
for(int i = 0; i < binaryString.length();i++)
{
//the nth character of the binaryString
binaryDigit=Character.getNumericValue(binaryString.charAt(i));
sumInt += binaryDigit* (int)java.lang.Math.pow(2,binaryString.length() - i - 1);
}
return sumInt;
}
public void notMain() {
System.out.println(binaryToDecimal("10001"));
}
}