gpt4 book ai didi

c++ - 位操作十六进制 C++

转载 作者:搜寻专家 更新时间:2023-10-31 00:39:13 24 4
gpt4 key购买 nike

我有一个无符号整数和一个十六进制值。我希望能够检查 unsigned int 是否包含十六进制值;例如:

unsigned int reason = 0x80020002

#define MAJOR_ERROR_CODE 0x00020000
#define MINOR_ERROR_CODE 0x00000002
#define OPTIONAL_ERROR_CODE 0x80000000

现在我们可以看到,变量 reason 包含所有三个 #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 是这三个错误代码的组合。这些错误代码中的每一个都有一个唯一的字符串,并且根据我需要生成字符串的变量原因中存在的错误代码中的哪一个。

最佳答案

通过使用二元运算符&:

if(reason & MAJOR_ERROR_CODE)
{
// Do Major Error code...
}

if(reason & MINOR_ERROR_CODE)
{
// Do minor Error code...
}

if(reason & OPTIONAL_ERROR_CODE)
{
// Do Optional error code...
}

关于c++ - 位操作十六进制 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16594112/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com