이 문제에서는 두 개의 숫자 n과 k가 주어집니다. 우리의 임무는 k 번째 를 인쇄하는 것입니다. 숫자 n의 최하위 비트.
문제를 이해하기 위해 예를 들어보겠습니다.
Input: n = 12 , k = 3 Output 1 Explanation: Let’s see the binary representation of n: 12 = 1100
이제 3번째 최하위 비트는 1입니다.
이 문제를 해결하기 위해 숫자의 이진 비트를 사용합니다. 그리고 숫자의 k번째 비트를 생성합니다. 이를 위해 숫자의 이진 이동을 사용하고 숫자(k-1)번을 왼쪽으로 이동합니다. 이제 k번째 비트의 값을 줄 이동된 숫자와 원래 숫자의 종료 연산을 수행합니다.
예시
아래 코드는 솔루션 구현을 보여줍니다.
#include <bits/stdc++.h> using namespace std; int main() { int N = 12, K = 3; cout<<K<<"th significant bit of "<<N<<" is : "; bool kthLSB = (N & (1 << (K-1))); cout<<kthLSB; return 0; }
출력
3th significant bit of 12 is : 1