0

JavaScript に文字列がある場合、文字列が占めるバイト数またはビット数をカウントする最良の方法は何ですか?

私の最初の考えは、EcmaScript 仕様 (5.1) が 8.4 で、EcmaScript の文字列要素は 16 ビット値で構成され、言語は UTF-16 文字エンコーディングを使用すると述べているため、その 10 進表現 (charCodeAt) を取得する必要があるということです。それを 2 で割り、その結果を床に置くと、ボブはあなたの父親の兄弟になります。

しかし、各文字をバイナリ (toString(2)) に変換する場合、ビットをカウントするために、1 だけでなく 0 もカウントする必要がありますか? それとも1だけ?

私がオンラインで読んだこと(そして情報はまばらです)から、それは次のようなものだと思います:

Math.floor("A".charCodeAt(0) / 2); // 32 bits... No?
4

2 に答える 2

3

文字列の各要素が 16 ビットの場合、文字列が占めるビット数は string.length * 16 ではないでしょうか。

于 2011-07-26T21:07:47.203 に答える
2

@Charlieだから01000001は単に8ビットですか?涼しい。これを回答に変えて、賛成票を投じることができますか?

正確には、以下を参照してください。

誰かがビット数だけを数えるように頼んだら、0 と 1 の両方を数える必要があります。「ビット」は本質的に情報コンテンツの尺度であることを忘れないでください。SO 16 ビットの情報コンテンツを持つフィールドがある場合、それは 2^16 の可能な構成があり、現在の構成はその 1 つに過ぎないことを意味します。あなたのビット文字列はそれらの構成の1つですが、16ビットの他の構成からのものかどうかを判断するにはゼロが必要です。– 昨日のチャーリー・マーティン

また、これに関する良い本を知っていますか? 私は独学です(来年大学まで)。:) – 昨日のトム

正直なところ、私はしません。私はいくつかをグーグルで検索しましたが、コンピューターの電源を入れる方法を教えてくれるものを引き続き入手しています。これは、あなたがすでに習得していることです. Think like a Computer Scientist を試すことができます。

于 2011-07-28T16:18:16.070 に答える