2008-11-02 5 views

ответ

8
wchar_t t = 0xd790; 

if (t >= 0x80 && t <= 0x7ff) ... 

В C++, символы являются взаимозаменяемыми с целыми числами, и вы можете сравнить их значения напрямую.

Обратите внимание, что я использовал wchar_t, поскольку тип данных char может содержать только значения до 0xFF.

+0

Я пробовал, и я получаю предупреждение : сравнение всегда неверно из-за ограниченного диапазона типов данных. Просто прочитайте исправление. – BobS 2008-11-02 20:53:17

+0

Похоже, ваш компилятор настроен на интерпретацию символа «char» в качестве типа подписанных данных (который варьируется от От -128 до 127). Используйте wchar_t, когда я отредактировал свой ответ. – 2008-11-02 20:54:29

3
unsigned short t = 0xd790; 

if (t >= 0x80 && t <= 0x7ff) ... 

Поскольку символ имеет максимальное значение 0xFF вы не можете использовать его, чтобы сравнить что-нибудь с более шестнадцатеричных цифр, чем 2.

0

С шестигранной на компьютере не более, чем способ, чтобы напечатать номер (как десятичная), вы также можете выполнить сравнение с обычными старыми базовыми целыми числами.

if((t >= 128) && (t <= 2047)) 
{ 
} 

Более читаемый.

Смежные вопросы