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