Trong hệ thống máy tính, số nhị phân được biểu thị trong hệ thống chữ số nhị phân trong khi số bát phân ở trong hệ thống chữ số bát phân. Số nhị phân ở cơ số 2 trong khi số bát phân ở cơ số 8.
Ví dụ về số nhị phân và số bát phân tương ứng của chúng như sau -
Số nhị phân | Số bát phân |
---|---|
01010 | 12 |
00111 | 7 |
11001 | 31 |
10000 | 20 |
Một chương trình chuyển đổi các số nhị phân thành bát phân và các số bát phân thành nhị phân được đưa ra như sau -
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; }
Đầu ra
Kết quả của chương trình trên như sau -
Binary to Octal Binary number: 1011 Octal number: 13 Octal to Binary Octal number: 25 Binary number: 10101
Trong chương trình trên, có hai hàm BinaryToOctal () và OctalToBinary ().
BinaryToOctal () chuyển đổi số nhị phân đã cho thành số bát phân. Điều này được thực hiện bằng cách đầu tiên chuyển đổi số nhị phân thành số thập phân và sau đó chuyển đổi số thập phân thành số bát phân. Điều này được thấy trong đoạn mã sau -
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 đổi số bát phân đã cho thành số nhị phân Việc này được thực hiện bằng cách đầu tiên chuyển đổi số bát phân thành số thập phân và sau đó chuyển đổi số thập phân thành số nhị phân. Điều này được thấy trong đoạn mã sau -
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; }
Trong hàm main (), số nhị phân và số bát phân được đưa ra. Sau đó, các số bát phân và nhị phân tương ứng của chúng được tính bằng cách gọi BinaryToOctal () và OctalToBinary () tương ứng. Điều này được hiển thị bên dưới -
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; }