我有一个无符号整数和一个十六进制值。我希望能够检查 unsigned int 是否包含十六进制值;例如:
unsigned int reason = 0x80020002
#define MAJOR_ERROR_CODE 0x00020000
#define MINOR_ERROR_CODE 0x00000002
#define OPTIONAL_ERROR_CODE 0x80000000
现在我们可以看到,变量原因包含所有三个#define 错误代码。我需要能够检测变量原因中十六进制错误代码的存在/不存在。我该怎么做?
编辑1:抱歉,我想我在尝试简化并发布时发布了一个稍微不同的问题。我所拥有的是几个主要、次要和可选错误代码 - 例如
#define MAJOR_ERROR_CODE_1 0x00020000
#define MAJOR_ERROR_CODE_2 0x00010000
#define MAJOR_ERROR_CODE_3 0x00070000
#define MINOR_ERROR_CODE_1 0x00000002
#define MINOR_ERROR_CODE_2 0x00000004
#define MINOR_ERROR_CODE_3 0x00000006
#define OPTIONAL_ERROR_CODE_1 0x80000000
#define OPTIONAL_ERROR_CODE_2 0x50000000
#define OPTIONAL_ERROR_CODE_3 0x30000000
现在我的 unsigned int 是这三个错误代码的组合。这些错误代码中的每一个都有一个唯一的字符串,并且取决于我的变量中存在哪一个,我需要生成字符串。