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

โปรแกรม C ++ เพื่อแปลงเลขฐานสิบเป็นเลขฐานสองโดยใช้ Stacks


ในปัญหานี้ เราจะมาดูวิธีการแปลงเลขฐานสิบเป็นเลขฐานสองโดยใช้กองซ้อน อย่างที่เราทราบดีว่าตัวเลขทศนิยมสามารถแปลงโดยใช้ไบนารีหลังจากหารด้วย 2 แล้วนำเศษที่เหลือ เรานำเศษที่เหลือจากอันสุดท้ายไปยังส่วนแรก ดังนั้นเราจึงใช้โครงสร้างข้อมูลสแต็กเพื่อทำสิ่งนั้นได้อย่างง่ายดาย

Input: Decimal number 13
Output: Binary number 1101

อัลกอริทึม

Step 1: Take a number in decimal
Step 2: while the number is greater than 0:
Step 2.1: Push the remainder after dividing the number by 2 into stack.
Step 2.2: set the number as number / 2.
Step 3: Pop elements from stack and print the binary number

โค้ดตัวอย่าง

#include<iostream>
#include<stack>
using namespace std;
void dec_to_bin(int number) {
   stack<int> stk;
   while(number > 0) {
      int rem = number % 2; //take remainder
      number = number / 2;
      stk.push(rem);
   }
   while(!stk.empty()) {
      int item;
      item = stk.top();
      stk.pop();
      cout << item;
   }
}
main() {
   int num;
   cout << "Enter a number: ";
   cin >> num;
   dec_to_bin(num);
}

ผลลัพธ์

Enter a number: 18
10010