Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 숫자의 K번째 최하위 비트 인쇄

<시간/>

이 문제에서는 두 개의 숫자 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