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

โปรแกรม C++ แปลงเลขฐานแปด (Octal) ↔ ฐานสิบ (Decimal) ทั้งสองทาง


เลขฐานแปด (Octal) ใช้ฐาน 8 เลขฐานสิบ (Decimal) ใช้ฐาน 10

ตัวอย่างการแปลง:

DecimalOctal
1012
70106
2531
1620

ตัวอย่างโค้ด (แปลงทั้ง 2 ทิศทาง)

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

void DecimalToOctal(int decimalNum) {
    int octalNum = 0, placeValue = 1;
    int dNo = decimalNum;
    while (decimalNum != 0) {
        octalNum += (decimalNum % 8) * placeValue;
        decimalNum /= 8;
        placeValue *= 10;
    }
    cout << "Octal form of decimal number " << dNo << " is " << octalNum << endl;
}

void OctalToDecimal(int octalNum) {
    int decimalNum = 0, power = 0;
    int oNo = octalNum;
    while(octalNum != 0) {
        decimalNum += (octalNum % 10) * pow(8, power);
        ++power;
        octalNum /= 10;
    }
    cout << "Decimal form of octal number " << oNo << " is " << decimalNum << endl;
}

int main() {
    DecimalToOctal(20);
    OctalToDecimal(32);
    return 0;
}

ผลลัพธ์

Octal form of decimal number 20 is 24
Decimal form of octal number 32 is 26

อธิบาย DecimalToOctal

while loop: decimalNum ≠ 0, หาร 8 เอาเศษคูณ placeValue บวกสะสม, placeValue ×= 10

while (decimalNum != 0) {
    octalNum += (decimalNum % 8) * placeValue;
    decimalNum /= 8;
    placeValue *= 10;
}

อธิบาย OctalToDecimal

while loop: octalNum ≠ 0, หาร 10 เอาเลขหลักสุดท้าย คูณ 8^power บวกสะสม, power++, octalNum /= 10

while(octalNum != 0) {
    decimalNum += (octalNum % 10) * pow(8, power);
    ++power;
    octalNum /= 10;
}

main() เรียกทั้ง 2 ฟังก์ชัน:

DecimalToOctal(20);
OctalToDecimal(32);