Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ chuyển đổi nhị phân sang bát phân và ngược lại


Số nhị phân sử dụng cơ số 2, số bát phân sử dụng cơ số 8. Dưới đây là bảng đối chiếu:

Số nhị phânSố bát phân
0101012
001117
1100131
1000020

Chương trình dưới đây thực hiện chuyển đổi hai chiều:

Ví dụ

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

int BinaryToOctal(int binaryNum) {
    int octalNum = 0, decimalNum = 0, count = 0;
    while(binaryNum != 0) {
        decimalNum += (binaryNum % 10) * pow(2, count);
        ++count;
        binaryNum /= 10;
    }
    count = 1;
    while (decimalNum != 0) {
        octalNum += (decimalNum % 8) * count;
        decimalNum /= 8;
        count *= 10;
    }
    return octalNum;
}

int OctalToBinary(int octalNum) {
    int decimalNum = 0, binaryNum = 0, count = 0;
    while(octalNum != 0) {
        decimalNum += (octalNum % 10) * pow(8, count);
        ++count;
        octalNum /= 10;
    }
    count = 1;
    while (decimalNum != 0) {
        binaryNum += (decimalNum % 2) * count;
        decimalNum /= 2;
        count *= 10;
    }
    return binaryNum;
}

int main() {
    int binaryNum = 1011, octalNum = 25;
    cout << "Binary to Octal" << endl;
    cout << "Binary number: " << binaryNum << endl;
    cout << "Octal number: " << BinaryToOctal(binaryNum) << endl;
    cout << "Octal to Binary" << endl;
    cout << "Octal number: " << octalNum << endl;
    cout << "Binary number: " << OctalToBinary(octalNum) << endl;
    return 0;
}

Kết quả

Binary to Octal
Binary number: 1011
Octal number: 13
Octal to Binary
Octal number: 25
Binary number: 10101

Chương trình chứa hai hàm chính:

BinaryToOctal()

Chuyển nhị phân sang bát phân qua trung gian thập phân.

int BinaryToOctal(int binaryNum) {
    int octalNum = 0, decimalNum = 0, count = 0;
    while(binaryNum != 0) {
        decimalNum += (binaryNum % 10) * pow(2, count);
        ++count;
        binaryNum /= 10;
    }
    count = 1;
    while (decimalNum != 0) {
        octalNum += (decimalNum % 8) * count;
        decimalNum /= 8;
        count *= 10;
    }
    return octalNum;
}

OctalToBinary()

Chuyển bát phân sang nhị phân cũng qua trung gian thập phân.

int OctalToBinary(int octalNum) {
    int decimalNum = 0, binaryNum = 0, count = 0;
    while(octalNum != 0) {
        decimalNum += (octalNum % 10) * pow(8, count);
        ++count;
        octalNum /= 10;
    }
    count = 1;
    while (decimalNum != 0) {
        binaryNum += (decimalNum % 2) * count;
        decimalNum /= 2;
        count *= 10;
    }
    return binaryNum;
}

Hàm main()

int main() {
    int binaryNum = 1011, octalNum = 25;
    cout << "Binary to Octal" << endl;
    cout << "Binary number: " << binaryNum << endl;
    cout << "Octal number: " << BinaryToOctal(binaryNum) << endl;
    cout << "Octal to Binary" << endl;
    cout << "Octal number: " << octalNum << endl;
    cout << "Binary number: " << OctalToBinary(octalNum) << endl;
    return 0;
}