二进制位变换
测试数据来自 system/2756
作业已超过截止时间,您无法递交本题目。
时间限制:1秒 内存限制:256M
【题目描述】
任意给定一个 64 位带符号整数 \(n\),把其对应的二进制依次做如下四个变化:
1、把 \(n\) 的第 \(i\) 位取反;
2、把 \(n\) 的第 \(j\) 位改成 0(如果本来为 0,则不变);
3、把 \(n\) 的第 \(k\) 位变成 1(如果本来为 1,则不变);
4、把 \(n\) 最靠右的 1 变成 0。
注意,二进制各位的序号从的最低位开始,依次是第0位,然后依次为第1位、第2,……
【输入格式】
第一行是整数 \(n\)。
第二行有三个整数:\(i,j,k\)。
【输出格式】
一个整数,输出变化后的 \(n\) 的值。
【输入输出样例】
Input
74
3 1 4
Output
64
【数据限制】
对于 \(100\%\) 的数据,\(|n|<2^{63}\),且 \(n\) 不为 0。
【来源】
Mr.he