[英]How is é bitwise shifted to a E in C++?
您好,我在理解这一点时遇到了麻烦,例如它如何采用像é
这样的重音字符并将其转换为E9
。 我可能会遗漏一些我知道它向右移位 4 的E = 01000101
é = 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]
是代表高 nybble 的digits[ch & 0x0F]
, digits[ch & 0x0F]
是代表低 nybble 的数字。
如果您看到é
变为E9
,那是因为é
在您的字符编码中具有值 233。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.