Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การคำนวณและเพิ่ม parity bit ให้กับทวินิยมใน JavaScript

Parity Bit (บิตความคู่คี่)

Parity bit หรือ check bit คือบิตที่เพิ่มเข้าไปในสตริงบิต เพื่อให้จำนวนบิต 1 ทั้งหมดในสตริงเป็นคู่ (even) หรือคี่ (odd)

ปัญหา

เราต้องเขียนฟังก์ชัน JavaScript ที่รับสองพารามิเตอร์: parity ที่ต้องการ (always 'even' หรือ 'odd') และการแทนทวินิยมของตัวเลขที่ต้องการตรวจสอบ ภารกิจของฟังก์ชันคือคืนค่าจำนวนเต็ม (0 หรือ 1) ซึ่งคือ parity bit ที่ต้องเพิ่มเข้าไป เพื่อให้ parity ของสตริงผลลัพธ์เป็นไปตามที่ต้องการ

ตัวอย่าง

โค้ดตัวอย่างด้านล่าง:

const parity = 'even';
const bin = '0101010';
const findParity = (parity, bin) => {
  const arr = bin
    .toString()
    .split("");
  let countOnes = 0;
  let res = 0;
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] == 1) {
      countOnes += 1;
    }
  }
  if (parity == 'even') {
    if (countOnes % 2 == 0) {
      res = 0;
    } else {
      res = 1;
    }
  } else {
    if (countOnes % 2 !== 0) {
      res = 0;
    } else {
      res = 1;
    }
  }
  return res;
};
console.log(findParity(parity, bin));

ผลลัพธ์

1

คำอธิบายเพิ่มเติม

'0101010' มี 1 สามตัว (odd) ต้องการ even parity → เพิ่ม 1 ทำให้เป็น 4 ตัว (even) โค้ดนับ 1 แล้วตัดสิน parity bit สามารถลดรูปได้: `parity === 'even' ? countOnes % 2 : 1 - (countOnes % 2)`