C++ 设置bit&;的最佳方式是什么;为什么?

C++ 设置bit&;的最佳方式是什么;为什么?,c++,c++11,bit,bitmask,C++,C++11,Bit,Bitmask,如果我必须设置第四位 哪种方法最好 方法1: a |=(1这两者是等价的 正如您所注意到的,使用1,这两种方法的作用是相同的。让我重点关注不同的部分: (1)在执行时没有差异。任何编译器都应该常数fold1 #include <bitset> #include <iostream> int main(int, char**) { auto a = std::bitset<8>{}; a.set(3 /*zero based indexing

如果我必须设置第四位

哪种方法最好

方法1:
a |=(1这两者是等价的


正如您所注意到的,使用
1,这两种方法的作用是相同的。让我重点关注不同的部分:


  • (1)在执行时没有差异。任何编译器都应该常数fold
    1
    
    #include <bitset>
    #include <iostream>
    
    int main(int, char**)
    {
        auto a = std::bitset<8>{};
        a.set(3 /*zero based indexing*/);
        std::cout << a.to_string() << std::endl;
        return 0;
    }