Computer >> Máy Tính >  >> Lập trình >> Javascript

Mã hóa chuỗi số thành chuỗi 0 và 1 trong JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript có trong một chuỗi biểu thị một số thập phân.

Hàm của chúng tôi phải chuyển đổi / mã hóa số thập phân này thành nhị phân dựa trên các quy tắc sau.

Đối với mỗi chữ số d của n

  • Gọi k là số bit của d
  • Chúng tôi viết k-1 lần chữ số 0, theo sau là chữ số 1
  • Chúng tôi viết chữ số d dưới dạng chuỗi nhị phân, với bit ngoài cùng bên phải là ít quan trọng nhất
  • Cuối cùng, chúng tôi nối kết quả của b) và c) để có được mã hóa của d

Cuối cùng, chúng tôi nối tất cả các kết quả nhận được với các chữ số của n.

Do đó, mã 2 là 0110 và 3 là 0111

Ví dụ

Sau đây là mã -

const str = '77338855';
const encodeNumString = (str = '') => {
   const buildarray = (string = '') => {
      let n = string.split(''), res = '';
      n.forEach(x => {
         let num = Number(x).toString(2);
         num = '0'.repeat(num.length -1) + '1' + num;
         res += num;
      });
      return res;
   }
   const arr = [];
   let res = "";
   for (let i = 0; i < 10; i++){
      arr.push(buildarray(String(i)));
   };
   while (str.length){
      for (let i = 0; i < 10; i++) {
         if (str.startsWith(arr[i])) {
            res += String(i);
            str = str.slice(arr[i].length);
            break;
         }
      }
   }
   return res;
};
console.log(encodeNumString(str));

Đầu ra

Sau đây là đầu ra của bảng điều khiển -

001111001111011101110001100000011000001101001101