Rumah  >  Artikel  >  hujung hadapan web  >  Mengekodkan rentetan berangka ke dalam rentetan 0s dan 1s dalam JavaScript

Mengekodkan rentetan berangka ke dalam rentetan 0s dan 1s dalam JavaScript

PHPz
PHPzke hadapan
2023-08-24 08:13:08637semak imbas

在 JavaScript 中将数字字符串编码为 0 和 1 的字符串

Soalan

Kita perlu menulis fungsi JavaScript yang menerima rentetan yang mewakili nombor perpuluhan.

Fungsi kita hendaklah menukar/mengekod nombor perpuluhan ini kepada binari berdasarkan peraturan berikut.

Untuk setiap digit d dalam n

  • Biar k ialah bilangan digit d
  • Kita darab k-1 dengan nombor 0 diikuti dengan nombor 1
  • Kita menulis nombor d sebagai rentetan binari dengan digit paling kanan ialah bit paling tidak bererti
  • Akhir sekali, kami menggabungkan keputusan b) dan c) untuk mendapatkan pengekodan d

Akhir sekali, kami menggabungkan semua keputusan nombor n yang diperolehi.

Jadi pengekodan 2 ialah 0110 dan 3 ialah 0111

Contoh

Berikut ialah kod -

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));

Output

Berikut ialah output konsol -

rreee

Atas ialah kandungan terperinci Mengekodkan rentetan berangka ke dalam rentetan 0s dan 1s dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam