检查Char是否在范围内

时间:2008-11-02 20:49:02

标签: c++ char range hex

如果我有一系列说000080-0007FF 我想看看包含十六进制的字符是否在该范围内,我该怎么办呢?

实施例

char t = 0xd790;

if (t is within range of 000080-0007FF) // true

3 个答案:

答案 0 :(得分:8)

wchar_t t = 0xd790;

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

在C ++中,字符可与整数互换,您可以直接比较它们的值。

请注意,我使用了wchar_t,因为char数据类型只能保存最大为0xFF的值。

答案 1 :(得分:3)

unsigned short t = 0xd790;

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

由于char的最大值为0xFF,因此您无法使用它来比较具有超过2的十六进制数字的任何内容。

答案 2 :(得分:0)

由于计算机上的十六进制只不过是一种打印数字(如十进制)的方法,因此您也可以使用普通的旧基数10整数进行比较。

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

更具可读性。