如果我有一系列说000080-0007FF
我想看看包含十六进制的字符是否在该范围内,我该怎么办呢?
实施例
char t = 0xd790;
if (t is within range of 000080-0007FF) // true
答案 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) )
{
}
更具可读性。