Trong hệ thống máy tính, số nhị phân được biểu diễn trong hệ cơ số 2, trong khi số bát phân sử dụng hệ cơ số 8.
Dưới đây là các ví dụ về số nhị phân và số bát phân tương ứng:
| Số nhị phân | Số bát phân |
|---|---|
| 01101 | 15 |
| 00101 | 5 |
| 10110 | 26 |
| 01010 | 12 |
Chương trình sau thực hiện chuyển đổi từ bát phân sang nhị phân:
Ví dụ
#include <iostream>
#include <cmath>
using namespace std;
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 octalNum = 33;
cout << "Octal to Binary" << endl;
cout << "Octal number: " << octalNum << endl;
cout << "Binary number: " << OctalToBinary(octalNum) << endl;
return 0;
}
Kết quả
Octal to Binary Octal number: 33 Binary number: 11011
Trong chương trình, hàm OctalToBinary() chuyển đổi số bát phân thành nhị phân thông qua hai bước: đầu tiên chuyển bát phân sang thập phân, sau đó chuyển thập phân sang nhị phân.
Giải thích hàm chuyển đổi
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 octalNum = 33;
cout << "Octal to Binary" << endl;
cout << "Octal number: " << octalNum << endl;
cout << "Binary number: " << OctalToBinary(octalNum) << endl;
return 0;
}