Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ để chuyển đổi số thập phân thành số bát phân

Trong hệ thống máy tính, số bát phân được biểu thị trong hệ thống chữ số bát phân trong khi số thập phân nằm trong hệ thống chữ số thập phân. Số bát phân ở cơ số 8 trong khi số thập phân ở cơ số 10.

Ví dụ về số thập phân và số bát phân tương ứng của chúng như sau.

Số thập phân Số bát phân
8 10
70 106
25 31
7 7

Một chương trình chuyển đổi các số thập phân thành bát phân như sau.

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<<"Octal form of decimal number "<<dNo<<" is "<<octalNum<<endl;
}
int main() {
   DecimalToOctal(70);
   return 0;
}

Đầu ra

Octal form of decimal number 70 is 106

Trong chương trình trên, hàm DecimalToOctal chuyển đổi các số thập phân thành bát phân. Trong hàm DecimalToOctal, ban đầu biến octalNum được khởi tạo bằng 0. Biến placeValue biểu thị vị trí của chữ số trong số. Giá trị của octalNum được tìm thấy bằng cách sử dụng vòng lặp while.

Đối với mỗi lần lặp của vòng lặp while, decimalNum được chia cho 8 và phần còn lại được nhân với placeValue. Giá trị này được thêm vào giá trị trước đó của octalNum. Ngoài ra decimalNum được chia cho 8 và thương được lưu lại. placeValue được nhân với 10.

Đoạn mã chứng minh điều này như sau.

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

Sau khi giá trị Octal, tức là octalNum được xóa, nó sẽ được hiển thị. Điều này được đưa ra dưới đây -

cout<<"Octal form of decimal number "<<dNo<<" is "<<octalNum<<endl;

Hàm main () chỉ chứa lệnh gọi hàm tới DecimalToOctal () với các giá trị bắt buộc. Điều này được chứng minh bằng đoạn mã sau.

DecimalToOctal(70);