Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptで数値文字列を0と1の文字列にエンコードする


問題

10進数を表す文字列を受け取るJavaScript関数を作成する必要があります。

この関数は、次のルールに基づいて、この10進数を2進数に変換/エンコードする必要があります。

nの各桁dについて

  • kをdのビット数とします
  • 数字0のk-1倍の後に数字1を書きます
  • 数字dをバイナリ文字列として書き込みます。右端のビットが最下位です
  • 最後に、b)とc)の結果を連結して、dのコーディングを取得します

最後に、nの桁に対して得られたすべての結果を連結します。

したがって、コード2を0110として、3を0111としてコーディングします

以下はコードです-

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

出力

以下はコンソール出力です-

001111001111011101110001100000011000001101001101

  1. JavaScriptで連結せずに文字列と数値を追加するにはどうすればよいですか?

    文字列の場合 および番号 追加の代わりに、連結が追加されます。 起こる。どちらも添付になりました お互い。ただし、それらを追加する必要がある場合は、文字列を整数に変換する必要があります。この状況では、 + オペレーターが登場します。実際には、文字列を整数に変換し、それらを追加するのに役立ちます。 例-1 次の例では、文字列 変換なしで番号に直接追加されます 。したがって、連結 出力に示されているように、加算の代わりに行われます。 <html> <body> <script>    const string = "100&q

  2. JavascriptのTextDecoderとTextEncoder?

    TextEncoderは、指定された文字列をutf-8標準に変換するために使用されます。文字列からUint8Arrayを再調整します。 TextDecoderは、バイトのストリームをコードポイントのストリームに変換するために使用されます。 UTF-8、ISO-8859-2、KOI8-R、GBKなどをデコードできます。 以下は、JavaScriptのTextDecoderとTextEncoderのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="