JavaScriptに文字列がある場合、文字列のバイト数またはビット数を数えるのに最適な方法は何ですか?誰も文字列のバイト数を数える方法を知っていますか?
EcmaScript spec(5.1)はEcmaScriptの文字列要素が16ビット値で構成されており、その言語ではUTF-16文字エンコーディングが使用されていると私は考えています。 (charCodeAt)、2で除算し、結果をフロアし、ボブはあなたの父の兄弟をフロアします。
しかし、各文字をバイナリ(toString(2))に変換すると、ビット数をカウントするために、0と1を数えますか?それとも1だけ?私がオンラインに読んだ(と情報が希薄である)何から
、私はそれはのようなものだと思っています:
Math.floor("A".charCodeAt(0)/2); // 32 bits... No?
これはかなり混乱しています。 Mバイトの記号のアルファベットの長さNの文字列は、N x Mバイトで表されます。多くのビットの8倍の時間がかかります。 – Patrick87
@shelmanええ、でも、バイナリで0と1を数えますか? 1は「オン」状態を表し、0は「オフ」状態を表すので、1だけである。 – Tom
UTF-16は固定幅エンコードではありません(http://unicode.org/faq/utf_bom.html#utf16-1)。キャラクターは16ビットまたは32ビットを占めるかもしれませんが、通常は16に収まるでしょう。 – Krab