位运算(代言人GR

题目传送门

题目

Description

这是一道位运算模板题。

有T组不同询问,每组询问给出 op,x,yop,x,y,表示使用第 opop 种操作对 x,yx,y 进行二进制位运算。

共有 6 种不同的 op, 涵义如下:

op=1: 将 x 右移 y 位

op=2: 将 x 左移 y 位

op=3: 将 x 的右数第 y 位(最末位为右数第1位,依此类推)强制改为 1

op=4: 将 x 的右数第 y 位强制改为 0

op=5: 将 x 的右数第 y 位取反

op=6: 截取 x 的右 y 位

Input Format

输入第一行为一个正整数 T

接下来 T 行,每行包括三个正整数 op,x,y,以空格分开。

1op6

0x2631

1y50

Output Format

输出 T 行答案(答案在 long long 范围内)。

Sample

输入

6
1 7 1
2 6 2
3 13 2
4 15 1
5 11 3
6 259 3

输出

3
24
15
14
15
3

Code

#include <bits/stdc++.h>
#define int long long
using namespace std;
int t;
signed main(){
	scanf("%lld",&t);
	while(t--){
		int op,x,y;
		scanf("%lld%lld%lld",&op,&x,&y);
		if(op==1) printf("%lld\n",x>>y);
		if(op==2) printf("%lld\n",x<<y);
		if(op==3) printf("%lld\n",x|(1ll<<(y-1ll)));
		if(op==4) printf("%lld\n",x&~(1ll<<(y-1ll)));
		if(op==5) printf("%lld\n",x^(1ll<<(y-1ll)));
		if(op==6) printf("%lld\n",x&(1ll<<y)-1ll);
	}
	return 0;
}
posted @   Zhao_zzZ  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示