Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

พิมพ์ Kth บิตที่มีนัยสำคัญน้อยที่สุดใน C++


ในปัญหานี้ เราได้รับตัวเลขสองตัว n และ k งานของเราคือพิมพ์ k th บิตที่มีนัยสำคัญน้อยที่สุดของจำนวน n.

มาดูตัวอย่างทำความเข้าใจปัญหากัน

Input: n = 12 , k = 3
Output
1
Explanation:
Let’s see the binary representation of n: 12 = 1100

ตอนนี้ บิตที่มีนัยสำคัญน้อยที่สุดที่ 3 คือ 1

เพื่อแก้ปัญหานี้ เราจะใช้เลขฐานสองบิตของตัวเลข และให้ผลลัพธ์เป็นบิตที่ k ของตัวเลข สำหรับสิ่งนี้ เราจะใช้การเลื่อนเลขฐานสองของตัวเลขและเลื่อนตัวเลขไปทางซ้าย (k-1) ครั้ง ตอนนี้กำลังดำเนินการสิ้นสุดของตัวเลขที่เลื่อนและหมายเลขเดิมซึ่งจะให้ค่าของบิต kth

ตัวอย่าง

โค้ดด้านล่างจะแสดงการใช้งานโซลูชันของเรา

#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