Maison  >  Article  >  interface Web  >  Encodage d'une chaîne numérique en une chaîne de 0 et de 1 en JavaScript

Encodage d'une chaîne numérique en une chaîne de 0 et de 1 en JavaScript

PHPz
PHPzavant
2023-08-24 08:13:08650parcourir

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

Question

Nous devons écrire une fonction JavaScript qui accepte une chaîne représentant un nombre décimal.

Notre fonction doit convertir/encoder ce nombre décimal en binaire en fonction des règles suivantes.

Pour chaque chiffre de d dans n

  • Soit k le nombre de chiffres de d
  • On multiplie k-1 par le nombre 0 suivi du nombre 1
  • On écrit le nombre d sous forme de chaîne binaire avec le le chiffre le plus à droite est le bit le moins significatif
  • Enfin, nous concaténons les résultats de b) et c) pour obtenir l'encodage de d

Enfin, nous concaténons tous les résultats des nombres obtenus de n.

Donc l'encodage 2 est 0110 et 3 est 0111

Exemple

Voici le code -

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

Sortie

Voici la sortie de la console -

001111001111011101110001100000011000001101001101

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer