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

PHPz
Lepaskan: 2023-08-24 08:13:08
ke hadapan
653 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!

sumber:tutorialspoint.com
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