Cơ bản của phép cộng nhị phân -
Bốn quy tắc của phép cộng nhị phân là:
0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10
Giữ các điểm này trong tâm trí, phép cộng nhị phân rất giống với phép cộng thập phân (tuân theo nguyên lý nhớ).
Chúng ta cần viết một hàm JavaScript nhận vào hai mảng chỉ chứa chuỗi nhị phân (hoặc '0' hoặc '1'). Hàm nên cộng các bit nhị phân tương ứng từ các mảng và trả về một mảng mới chứa kết quả cộng của các mảng đó.
Ví dụ - Nếu các mảng đầu vào là:
const arr1 = ['1', '0', '1']; const arr2 = ['1', '0', '1'];
Thì đầu ra sẽ là:
const output = ['1', '0', '1', '0'];
Ví dụ
Code cho việc này sẽ là:
const arr1 = ['1', '0', '1'];
const arr2 = ['1', '0', '1'];
const addBinary = (arr1 = [], arr2 = []) => {
const str1 = arr1.join('');
const str2 = arr2.join('');
let carry = 0, temp = 0, res = '';
for (let i = Math.max(str1.length, str2.length) - 1; i >= 0; i--) {
const el1 = +str1[i] || 0;
const el2 = +str2[i] || 0;
if (el1 + el2 + carry > 1) {
temp = 0;
carry = 1;
} else {
temp = el1 + el2 + carry;
carry = 0;
}
res = temp + res;
}
if (carry) res = carry + res;
return res.split('');
};
console.log(addBinary(arr1, arr2));Kết quả
Kết quả hiển thị trong console sẽ là:
[ '1', '0', '1', '0' ]