#12314. 判断某一位是否为 1

判断某一位是否为 1

判断某一位是否为 1

题目描述

给定一个整数 n 和一个整数 k,请判断 n 的二进制表示中第 k 位是否为 1

  • 规定:​最低位是第 0 位​,次低位是第 1 位,以此类推。
  • 例如:
    • n = 13 的二进制是 1101
      • 第 0 位 = 1
      • 第 1 位 = 0
      • 第 2 位 = 1
      • 第 3 位 = 1

输入格式

输入两个整数 n, k

输出格式

  • 如果第 k 位是 1,输出 YES
  • 否则输出 NO

数据范围

  • 0 ≤ n ≤ 10^9
  • 0 ≤ k ≤ 30

输入输出样例

输入 1

13 2

输出 1

YES

解释:13 (1101) 的第 2 位是 1。


输入 2

13 1

输出 2

NO

解释:13 (1101) 的第 1 位是 0。


思路提示

  • (1 << k) 表示一个仅第 k 位为 1 的二进制数。
  • (n & (1 << k)) 判断 n 的第 k 位是否为 1。
    • 若结果非 0 → 第 k 位是 1;
    • 若结果为 0 → 第 k 位是 0。