在C + / C ++中查找十六进制范围内的十六进制数

时间:2013-09-27 21:13:53

标签: c++ hex

如图所示,我有十六进制和最大十六进制范围,我想搜索/检查这个十六进制数0D08是否属于下面的十六进制范围。 提前谢谢。

安德鲁 我应该在阵列中做吗? {“0000”,“0001”,......“03FF”},但会太多了。

0000H - 03FFH

3 个答案:

答案 0 :(得分:2)

只需进行正常比较: -

x=0xd08;

min = 0x0;   // decimal 0
max = 0x3ff; // decimal 1023

if ( x>=min  && x <= max){
//Do Stuff

}

答案 1 :(得分:1)

最好的方法是首先将hex转换为int然后进行比较。

答案 2 :(得分:1)

只需使用比较运算符。您会发现知道十六进制数字可能会直接用C ++ 0xHHHH表示,其中H范围自然地从0F

bool check_range(int x)
{
    return x > 0x0000 && x < 0x03FF;
}

if(check_range(0x0D08))
    //do stuff