在 C++ 中,é 如何按位转换为 E?

How is é bitwise shifted to a E in C++?

你好,我无法理解这个以及它如何采用像 é 这样的重音字符并将其转换为 E9。我可能遗漏了一些东西,我知道它向右移动了 4。é = 11101000E = 01000101 移动 4 不会使 E 正确?

static const char *digits = "0123456789ABCDEF";
unsigned char ch;
*dest++ = digits[(ch >> 4) & 0x0F];//this returns E
*dest++ = digits[ch & 0x0F];//this returns 9

代码不会将 é 转换为 E9 - 它会将 8 位数字转换为其十六进制表示形式,以四位形式 ("nybbles")。

digits[(ch >> 4) & 0x0F]是代表高字节的数字,digits[ch & 0x0F]是代表低字节的数字。

如果您看到 é 变成 E9,那是因为 é 在您的字符编码中的值为 233。