0

如果我在 JavaScript 中有一个字符串,那么计算字符串占用的字节数或位数的最佳方法是什么?

我的第一个想法是,由于 EcmaScript 规范(5.1)在 8.4 中声明 EcmaScript 中的字符串元素由 16 位值组成,并且语言使用 UTF-16 字符编码,我应该得到它的十进制表示(charCodeAt),把它除以二,把结果取平,鲍勃是你父亲的兄弟。

但是,如果我要将每个字符转换为二进制 (toString(2)),为了计算位,我是否计算 0 和 1?还是只有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。请记住,“位”本质上是对信息内容的衡量。因此,如果您有一个信息内容为 16 位的字段,这意味着有 2^16 种可能的配置,您当前的配置只是其中一种。您的位字符串是这些配置之一,但您需要零来判断是否来自其他 16 位配置。——查理·马丁昨天

另外,你知道这方面的好书吗?我是自学的(直到明年大学)。:) – 汤姆昨天

老实说,我不知道。我用谷歌搜索了一些,我不断得到一些教如何打开电脑的东西,你显然已经掌握了一些东西。您可以尝试像计算机科学家一样思考

于 2011-07-28T16:18:16.070 回答