Trong hệ thống máy tính, số bát phân (octal) biểu diễn trong hệ cơ số 8, số thập phân (decimal) trong hệ cơ số 10.
Ví dụ số thập phân và số bát phân tương ứng:
| Số thập phân | Số bát phân |
|---|---|
| 8 | 10 |
| 70 | 106 |
| 25 | 31 |
| 7 | 7 |
Chương trình chuyển đổi số thập phân sang bát phân:
Ví dụ
#include <iostream>
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 << "Dạng bát phân của số thập phân " << dNo << " là " << octalNum << endl;
}
int main() {
DecimalToOctal(70);
return 0;
}
Kết quả đầu ra
Dạng bát phân của số thập phân 70 là 106
Trong chương trình, hàm DecimalToOctal chuyển đổi số thập phân sang bát phân. Ban đầu octalNum khởi tạo bằng 0. Biến placeValue chỉ vị trí chữ số. Giá trị octalNum tìm bằng vòng lặp while.
Mỗi vòng lặp, decimalNum chia 8, phần dư nhân placeValue cộng vào octalNum. decimalNum gán bằng thương. placeValue nhân 10:
while (decimalNum != 0) {
octalNum += (decimalNum % 8) * placeValue;
decimalNum /= 8;
placeValue *= 10;
}
Sau khi có giá trị bát phân (octalNum), hiển thị:
cout << "Dạng bát phân của số thập phân " << dNo << " là " << octalNum << endl;
Hàm main() chỉ chứa lời gọi DecimalToOctal() với giá trị cần chuyển:
DecimalToOctal(70);