在 C++ 中,é 如何按位转换为 E?
How is é bitwise shifted to a E in C++?
你好,我无法理解这个以及它如何采用像 é
这样的重音字符并将其转换为 E9
。我可能遗漏了一些东西,我知道它向右移动了 4。é = 11101000
和 E = 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。
你好,我无法理解这个以及它如何采用像 é
这样的重音字符并将其转换为 E9
。我可能遗漏了一些东西,我知道它向右移动了 4。é = 11101000
和 E = 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。