3

文字列のバイナリ サイズ (たとえば、文字列 s = "Ababa") を BITS (バイトではなく) で取得する方法。

4

2 に答える 2

10

どのエンコーディングで?文字列の特定のバイナリ表現のビット数は、バイト数 * 8 です。

byte[] bytes = text.getBytes("UTF-8"); // Or whatever encoding you want
int bits = bytes.length * 8;

バイトの端数を許可するエンコーディングを見たことがないと思います。

text.length() * 16UTF-16 に興味がある場合は、それぞれcharが UTF-16 コード単位であるため、そのまま使用できることに注意してください。

于 2012-07-07T14:07:37.900 に答える
5

バイトを取得し、8 を掛けます...

"xxx".getBytes().length * 8;

編集:Jon Skeet の回答とマージすると、エンコーディングを指定することも重要になる可能性があります。そうしないと、システムのデフォルトのエンコーディングを使用してサイズが返されますが、それは必ずしも知りたいことではありません。特定のエンコーディングを使用してサイズを知るには、次を使用します。

 "xxx".getBytes(encoding).length * 8;

エンコーディングは、「UTF-8」、「ASCII」、または使用したいものです。

于 2012-07-07T14:08:25.183 に答える