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

โปรแกรม C++ สำหรับแปลงเลขฐานแปด (Octal) เป็นเลขฐานสอง (Binary)

ในระบบคอมพิวเตอร์ ตัวเลขฐานสอง (Binary) ถูกแสดงในระบบนิพจน์ฐานสอง ในขณะที่ตัวเลขฐานแปด (Octal) อยู่ในระบบนิพจน์ฐานแปด ตัวเลขฐานสองมีฐานเป็น 2 ส่วนตัวเลขฐานแปดมีฐานเป็น 8

ตัวอย่างการแปลงเลขฐานสองและฐานแปดที่ตรงกัน

เลขฐานสอง (Binary) เลขฐานแปด (Octal)
0110115
001015
1011026
0101012

โค้ดโปรแกรมแปลง Octal เป็น Binary

#include <iostream>
#include <cmath>
using namespace std;

int OctalToBinary(int octalNum) {
    int decimalNum = 0, binaryNum = 0, count = 0;
    
    // แปลง Octal เป็น Decimal ก่อน
    while(octalNum != 0) {
        decimalNum += (octalNum % 10) * pow(8, count);
        ++count;
        octalNum /= 10;
    }
    
    // แล้วค่อยแปลง Decimal เป็น Binary
    count = 1;
    while (decimalNum != 0) {
        binaryNum += (decimalNum % 2) * count;
        decimalNum /= 2;
        count *= 10;
    }
    return binaryNum;
}

int main() {
    int octalNum = 33;
    cout << "Octal to Binary" << endl;
    cout << "Octal number: " << octalNum << endl;
    cout << "Binary number: " << OctalToBinary(octalNum) << endl;
    return 0;
}

ผลลัพธ์

Octal to Binary
Octal number: 33
Binary number: 11011

คำอธิบายการทำงาน

ฟังก์ชัน OctalToBinary() ทำงาน 2 ขั้นตอน:

  1. แปลง Octal เป็น Decimal: ใช้ลูป while ดึงตัวเลขทีละหลัก (mod 10) คูณกับ 8 ยกกำลังลำดับ แล้วสะสมค่า
  2. แปลง Decimal เป็น Binary: ใช้ลูป while หารด้วย 2 ทีละครั้ง เก็บเศษ (mod 2) สร้างตัวเลขฐานสองจากขวาไปซ้าย

ในฟังก์ชัน main() กำหนดค่า octalNum = 33 เรียกฟังก์ชัน และแสดงผลลัพธ์