gpt4 book ai didi

c++ - 在 C++ 中使用有符号变量和无符号变量作为标志

转载 作者:可可西里 更新时间:2023-11-01 16:42:19 26 4
gpt4 key购买 nike

是否有使用有符号变量与无符号变量作为标志的“良好做法”或习惯?我个人会使用无符号变量,但我什至可以在某些代码中看到用于标志的有符号变量。我的意思是特别是在重要的图书馆界面中。

更新我不能接受答案“使用枚举”,因为它是 implementation dependent并且它不能在库界面中使用。

最佳答案

我认为无符号类型是一组标志的更好表示。因为您需要特定数量的等效位来表示您的标志。在有符号类型中,第一位有点特殊。

可能是 std::bitset也能满足你的要求。并将为您提供基本的逻辑运算符和转换方法。

#include <iostream>
#include <bitset>
using namespace std;

int main() {
std::bitset<4> flags;
flags.set(1);
flags.set(3);
std::cout << flags.to_string() << std::endl;
std::cout << flags.to_ulong() << std::endl;
return 0;
}

DEMO

关于c++ - 在 C++ 中使用有符号变量和无符号变量作为标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29795170/

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