【发布时间】:2023-04-03 07:22:01
【问题描述】:
如果我有一个范围说000080-0007FF
我想看看包含十六进制的字符是否在该范围内,我该怎么做?
例子
char t = 0xd790;
if (t is within range of 000080-0007FF) // true
【问题讨论】:
如果我有一个范围说000080-0007FF
我想看看包含十六进制的字符是否在该范围内,我该怎么做?
例子
char t = 0xd790;
if (t is within range of 000080-0007FF) // true
【问题讨论】:
由于计算机上的十六进制只不过是一种打印数字(如十进制)的方式,因此您也可以与普通的以 10 为底的整数进行比较。
if( (t >= 128) && (t <= 2047) )
{
}
更具可读性。
【讨论】:
unsigned short t = 0xd790;
if (t >= 0x80 && t <= 0x7ff) ...
由于 char 的最大值为 0xFF,因此您不能使用它来比较十六进制数字多于 2 的任何内容。
【讨论】:
wchar_t t = 0xd790;
if (t >= 0x80 && t <= 0x7ff) ...
在 C++ 中,字符可以与整数互换,您可以直接比较它们的值。
请注意,我使用了wchar_t,因为char 数据类型最多只能保存 0xFF 的值。
【讨论】: