unsigned int と 16 進値があります。unsigned int に 16 進値が含まれているかどうかを確認できるようにしたい。例えば:
unsigned int reason = 0x80020002
#define MAJOR_ERROR_CODE 0x00020000
#define MINOR_ERROR_CODE 0x00000002
#define OPTIONAL_ERROR_CODE 0x80000000
ご覧のとおり、変数 reason には 3 つの #define エラー コードがすべて含まれています。16 進エラー コード int 変数の理由の有無を検出できるようにする必要があります。どうすればいいのですか?
編集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 は、これら 3 つのエラー コードの組み合わせです。これらの各エラー コードには一意の文字列があり、これらのいずれかが変数に存在するかどうかに応じて、文字列を生成する必要があります。