小编cla*_*ong的帖子

如何在Xcode for Mac OSX中启用C++ 17

如何在OSX High Sierra(10.13.5)上的Xcode(9.4.1)中启用C++ 17?

c++ xcode c++17 macos-high-sierra xcode9.4

11
推荐指数
2
解决办法
7074
查看次数

在两个整数之间交换最右边的N位

在现场C++编码访谈期间询问了这个问题.在那次采访中我没有提供一个好的答案.所以我希望在堆栈溢出时得到人们的反馈和建议.现在我已经有更多的时间来提出解决方案了,我相信我写了一个不错的解决方案.我认为这可以正常工作ab引用不同的整数.如果a并且b引用相同的整数,那么该整数将被破坏为0.

void SwapRightMostNBits(int& a, int& b, unsigned int n){

    if (n>31) { n=31; }
    int mask=static_cast<int>(pow(2,n)-1);

    a ^= (b & mask);
    b ^= (a & mask);
    a ^= (b & mask);
}
Run Code Online (Sandbox Code Playgroud)

c++ bit-manipulation

3
推荐指数
1
解决办法
95
查看次数