ในปัญหานี้ เราจะมาดูวิธีการแปลงเลขฐานสิบเป็นเลขฐานสองโดยใช้กองซ้อน อย่างที่เราทราบดีว่าตัวเลขทศนิยมสามารถแปลงโดยใช้ไบนารีหลังจากหารด้วย 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