二进制位变换

测试数据来自 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}\)。

【来源】

  Mr.he

信息

ID
1272
难度
9
分类
模拟 点击显示
标签
(无)
递交数
1
已通过
1
通过率
100%
上传者