Maison > interface Web > js tutoriel > 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
Libérer: 2023-08-24 08:13:08
avant
756 Les gens l'ont consulté

在 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));
Copier après la connexion

Sortie

Voici la sortie de la console -

001111001111011101110001100000011000001101001101
Copier après la connexion

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 de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal