Я читал об Unicode и UTF-8 за последние пару дней, и я часто встречаю побитное сравнение, подобное этому:
int strlen_utf8(char *s)
{
int i = 0, j = 0;
while (s[i])
{
if ((s[i] & 0xc0) != 0x80) j++;
i++;
}
return j;
}
Может ли кто-нибудь уточнить сравнение с 0xc0 и проверить, является ли это самым значимым битом?
Спасибо!
EDIT: ANDed, а не сравнение, использовали неправильное слово;)