Below is the code in Java to add 2 binary Numbers: Both the codes execute, Could someone explain which code is much efficient and the differences between both codes, By testing with different inputs. public void add(BinaryNumber aBinaryNumber) { Code 1: if(getLength() != aBinaryNumber.getLength()) { System.out.println("Lengths of numbers to be added is different. "); } else { int carry = 0; for(int i = 0; i < data.length; i++) { int z = carry + getDigit(i) + aBinaryNumber.getDigit(i); if(z >= 10) { z = z - 10; carry = 1; } else { carry = 0; } data[i] = z; } if(carry != 0) { overFlow = true; } } Code 2: int data1[] = new int[aBinaryNumber.getLength()]; data1 = aBinaryNumber.getBinary(); int carry = 0; if(data.length == data1.length) { for(int i=0; i
Below is the code in Java to add 2 binary Numbers:
Both the codes execute,
Could someone explain which code is much efficient and the differences between both codes,
By testing with different inputs.
public void add(BinaryNumber aBinaryNumber) {
Code 1:
if(getLength() != aBinaryNumber.getLength()) {
System.out.println("Lengths of numbers to be added is different. ");
}
else {
int carry = 0;
for(int i = 0; i < data.length; i++) {
int z = carry + getDigit(i) + aBinaryNumber.getDigit(i);
if(z >= 10) {
z = z - 10;
carry = 1;
}
else {
carry = 0;
}
data[i] = z;
}
if(carry != 0) {
overFlow = true;
}
}
Code 2:
int data1[] = new int[aBinaryNumber.getLength()];
data1 = aBinaryNumber.getBinary();
int carry = 0;
if(data.length == data1.length) {
for(int i=0; i<data.length; i++) {
int t = (carry + data[i] + data1[i]);
if(t == 0) {
data[i] = 0;
carry = 0;
} else if(t == 1) {
data[i] = 1;
carry = 0;
} else if(t == 2) {
data[i] = 0;
carry = 1;
} else if(t == 3) {
data[i] = 1;
carry = 1;
}
}
if(carry == 1) {
overflow = true;
}
}
else {
System.out.println("The lengths of the binary numbers do not match.");
}
}
Trending now
This is a popular solution!
Step by step
Solved in 2 steps