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

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

PHPz
Lepaskan: 2023-08-24 08:13:08
ke hadapan
729 orang telah melayarinya

在 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));
Salin selepas log masuk

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 Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan