首先,汉字占两个字节,且其编码的标志是 最高位肯定是 1 。
因此在判断时,只用取前一字节(最高位包含在内),和 0x80 进行 “与” 运算,
str[i] & 0x80;
0x80 为 10000000,则 “与” 运算后, 若最高位为 1 ,则判断为汉字字符(与其后的一个字节一起 str[i] 和 str[i + 1])。
if(str[i] & 0x80 == 0x80) //则为汉字字符
首先,汉字占两个字节,且其编码的标志是 最高位肯定是 1 。
因此在判断时,只用取前一字节(最高位包含在内),和 0x80 进行 “与” 运算,
str[i] & 0x80;
0x80 为 10000000,则 “与” 运算后, 若最高位为 1 ,则判断为汉字字符(与其后的一个字节一起 str[i] 和 str[i + 1])。
if(str[i] & 0x80 == 0x80) //则为汉字字符