Vấn đề
Chúng ta cần viết một hàm JavaScript nhận vào một số.
Hàm phải lặp qua biểu diễn nhị phân của số và hoán đổi các bit liền kề để xây dựng nhị phân mới. Và cuối cùng hàm phải trả về giá trị thập phân của nhị phân mới.
Ví dụ
Dưới đây là mã:
const num = 13;
const swapBits = (num) => {
let arr = num.toString(2).split('');
if(arr.length % 2){
arr.unshift(0);
}
for(let i = 0; i < arr.length - 1; i = i + 2) {
[arr[i], arr[i + 1]] = [arr[i + 1], arr[i]];
}
return +('0b' + arr.join(''));
}
console.log(swapBits(num));
Kết quả
14