如图所示,我有十六进制和最大十六进制范围,我想搜索/检查这个十六进制数0D08是否属于下面的十六进制范围。 提前谢谢。
安德鲁 我应该在阵列中做吗? {“0000”,“0001”,......“03FF”},但会太多了。
0000H - 03FFH
答案 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
范围自然地从0
到F
。
bool check_range(int x)
{
return x > 0x0000 && x < 0x03FF;
}
if(check_range(0x0D08))
//do stuff