题解 | #【模板】位运算Ⅲ ‖ 混合运算#

【模板】位运算Ⅲ ‖ 混合运算

https://www.nowcoder.com/practice/ffc704e1536d48518585be94122fde36

提供一个精简的AC代码

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

const unsigned int mask = 0b111111111111;
int solve(int o, int x,int p){
    switch (o) {
        case 1 : return (x<<p)&mask;
        case 2 : return (x>>p)|(mask^(mask>>p));
        case 3 : return x&~(1<<p);
        case 4 : return x|(1<<p);
        default: assert(0);
    }
    return -1;
}

int main() {
    int t;
    cin >> t;
    while(t--){
        unsigned int o,x,p;
        cin >> o >> x >> p;
        cout << solve(o,x,p) << endl;
    }
}
// 64 位输出请用 printf("%lld")
全部评论

相关推荐

01-12 20:31
东北大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务