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="