【发布时间】:2014-05-10 08:52:14
【问题描述】:
存储AAAAA 需要多少字节?
我知道一个 ASCII 字母占用一个字节,但是下面这行代码给了我一个奇怪的答案。
nbytesdecoded = ((ch + 3) / 4) * 3; Where ch is the length of characters, which is five.
上面的代码需要 6 个字节。是这样吗?
代码如下。
int nprbytes;
int nbytesdecoded;
char *s = new char[256];
char *bufin = new char[256];
cout << "Enter your phrase: ";
cin >> s;
bufin = (char *)s;
int ch = strlen(s);
ch = ch - 1;
nbytesdecoded = ((ch + 3) / 4) * 3;
cout << nbytesdecoded;
【问题讨论】:
-
取决于格式。 ASCII 正确占用 7 位,GSM SMS 默认编码占用 7 位.... UTF-16 占用 16 位,UTF-8 占用可变数字。如果您执行 base64 或 uuencode 或其他一些 7 位清理,它们会占用超过一个字节... C 字符串您必须考虑空终止...。
-
该公式应该代表什么?如果它确实是字节数,那么您大部分时间都会得到十进制答案。
-
我试图理解我得到的这段代码。用于解码 Base64 字符串。
-
请注明这是解码 base64 字符串所需的字节数。
-
UTF-16 需要 16 或 32 位 .