如图所示,我有十六进制范围内的最小值和最大值,并且我喜欢搜索/检查此十六进制数字0D08是否属于下面的十六进制范围。 在此先感谢。在C +/C++中查找十六进制范围内的十六进制数字
安德鲁 我应该在数组中做? {“0000”,“0001”,......“03FF”},但会太多。
0000H - 03FFH
如图所示,我有十六进制范围内的最小值和最大值,并且我喜欢搜索/检查此十六进制数字0D08是否属于下面的十六进制范围。 在此先感谢。在C +/C++中查找十六进制范围内的十六进制数字
安德鲁 我应该在数组中做? {“0000”,“0001”,......“03FF”},但会太多。
0000H - 03FFH
只需使用比较操作符。您会发现识别十六进制数字可能会直接用C++使用符号0xHHHH
表示,其中H
的范围自然为0
至F
。
bool check_range(int x)
{
return x > 0x0000 && x < 0x03FF;
}
if(check_range(0x0D08))
//do stuff
谢谢Brunocodutra。我应该接受哪一个?两个答案看起来不错。 – AndrewS
@AndrewS [底线是你应该接受你发现对你个人最有帮助的答案。](http://meta.stackexchange.com/questions/5234/how-does-accepting-an -answer工作/ 5235#5235) – brunocodutra
将十六进制转换为“int”并比较“int”值。 –
为什么不将min,max和number转换为小数,只需要'if(number> = min && number <= max)'? – Grzegorz
你知道十六进制数值是怎么样的?作为字符串,数字?他们只是数字 - 所以数学的规则适用。毕竟十六进制只是一个二进制数字的分组,而实际上计算机是如何在内部表示数字的。您在发布您的问题之前是否考虑过这个问题? – Floris