Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

การแปลงฐานสิบเป็นฐานสอง (Decimal to Binary Conversion)

บทนำ

เลขฐานสิบสามารถแปลงเป็นเลขฐานสองได้ โดยการหารตัวเลขด้วย 2 จนกว่าจะเหลือ 0 หรือ 1 และในแต่ละขั้นตอน ให้เก็บเศษไว้แยกต่างหาก เพื่อสร้างเลขฐานสองในลำดับย้อนกลับ

ในอัลกอริทึมนี้ เราจะใช้วิธีการแบบเรียกซ้ำ (Recursive) ซึ่งช่วยให้แก้ปัญหาได้โดยไม่ต้องใช้โครงสร้างข้อมูล Stack โดยตรง เนื่องจากการเรียกซ้ำของฟังก์ชันจะใช้ Stack ภายในเอง

อินพุตและเอาต์พุต

Input: เลขฐานสิบ 56
Output: Binary Equivalent: 111000

อัลกอริทึม

decToBin(decimal)
Input: เลขฐานสิบ
Output: สตริงเลขฐานสองเทียบเท่า

Begin
    if decimal = 0 หรือ 1, then
        insert decimal ลงในสตริง binary
        return
    decToBin(decimal / 2)
    insert (decimal mod 2) ลงในสตริง binary
End

ตัวอย่างโค้ด (C++)

#include <iostream>
using namespace std;

void decToBin(int dec) {
    if (dec == 1 || dec == 0) {
        cout << dec;  // พิมพ์ 0 หรือ 1 ตามค่า dec
        return;
    }
    decToBin(dec/2);  // หารตัวเลขด้วย 2 และหา decimal ใหม่
    cout << dec % 2;  // หลังจาก return ให้พิมพ์ค่าในลำดับย้อนกลับ
}

main() {
    int dec;
    cout << "Enter decimal number: ";
    cin >> dec;
    cout << "Binary Equivalent: ";
    decToBin(dec);
}

ผลลัพธ์

Enter decimal number: 56
Binary Equivalent: 111000