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

Chương trình C ++ cho thập lục phân sang thập phân

Được cung cấp với một số thập lục phân làm đầu vào, nhiệm vụ là chuyển đổi số thập lục phân đã cho thành số thập phân.

Số thập lục phân trong máy tính được biểu thị với cơ số 16 và số thập phân được biểu thị với cơ số 10 và được biểu thị bằng các giá trị 0 - 9 trong khi số thập lục phân có các chữ số bắt đầu từ 0 - 15 trong đó 10 được biểu thị là A, 11 là B, 12 là C, 13 như D, 14 như E và 15 như F.

Để chuyển đổi một số thập lục phân thành một số thập phân, hãy làm theo các bước sau -

  • Chúng tôi sẽ trích xuất các chữ số bắt đầu từ phải sang trái cho đến phần dư và sau đó nhân nó với lũy thừa bắt đầu từ 0 và sẽ được tăng lên 1 cho đến khi (số chữ số) - 1
  • Vì chúng ta cần thực hiện chuyển đổi từ hệ thập lục phân sang hệ nhị phân nên cơ số lũy thừa sẽ là 16 vì hệ bát phân có cơ số 16.
  • Nhân các chữ số của đầu vào đã cho với cơ số và công suất và lưu trữ kết quả
  • Cộng tất cả các giá trị đã nhân để nhận được kết quả cuối cùng là số thập phân.

Dưới đây là biểu diễn bằng hình ảnh của việc chuyển đổi một số thập lục phân thành một số thập phân.

Chương trình C ++ cho thập lục phân sang thập phân

Ví dụ

Input-: ACD
   A(10) will be converted to a decimal number by -: 10 X 16^2 = 2560
   C(12) will be converted to a decimal number by -: 12 X 16^1 = 192
   D(13) will be converted to a decimal number by -: 13 X 16^0 = 13
Output-: total = 13 + 192 + 2560 = 2765

Thuật toán

Start
Step 1-> declare function to convert hexadecimal to decimal
   int convert(char num[])
      Set int len = strlen(num)
      Set int base = 1
      Set int temp = 0
      Loop For int i=len-1 and i>=0 and i—
         IF (num[i]>='0' && num[i]<='9')
            Set temp += (num[i] - 48)*base
            Set base = base * 16
         End
         Else If (num[i]>='A' && num[i]<='F')
            Set temp += (num[i] - 55)*base
            Set base = base*16
         End
         return temp
step 2-> In main()
   declare char num[] = "3F456A"
   Call convert(num)
Stop

Ví dụ

#include<iostream>
#include<string.h>
using namespace std;
//convert hexadecimal to decimal
int convert(char num[]) {
   int len = strlen(num);
   int base = 1;
   int temp = 0;
   for (int i=len-1; i>=0; i--) {
      if (num[i]>='0' && num[i]<='9') {
         temp += (num[i] - 48)*base;
         base = base * 16;
      }
      else if (num[i]>='A' && num[i]<='F') {
         temp += (num[i] - 55)*base;
         base = base*16;
      }
   }
   return temp;
}
int main() {
   char num[] = "3F456A";
   cout<<num<<" after converting to deciaml becomes : "<<convert(num)<<endl;
   return 0;
}

Đầu ra

NẾU CHÚNG TÔI CHẠY MÃ TRÊN, NÓ SẼ TẠO ĐẦU RA SAU ĐÂY

3F456A after converting to deciaml becomes : 4146538