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

Chương trình chuyển đổi từ thập phân sang thập lục phân trong C ++

Được đưa ra với một số thập phân làm đầu vào, nhiệm vụ là chuyển đổi số thập phân đã cho thành số thập lục 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 phân thành một số thập lục phân, hãy làm theo các bước đã cho -

  • Trước hết chia số đã cho với giá trị cơ bản của số chuyển đổi, ví dụ:chia 6789 cho 16 bởi vì chúng ta cần chuyển 6789 thành một số thập lục phân có cơ số 16, sau đó lấy thương và lưu trữ nó. Nếu phần còn lại nằm trong khoảng từ 0-9, hãy lưu trữ chúng như cũ và nếu phần còn lại nằm trong khoảng 10-15 chuyển đổi chúng ở dạng ký tự là A - F
  • Chia thương số thu được với giá trị cơ bản của số thập lục phân là 16 và tiếp tục lưu trữ các bit.
  • Tiếp tục chuyển đúng sang các bit đã lưu trữ
  • Lặp lại bước này cho đến khi phần còn lại không thể phân chia được

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 phân thành một số thập lục phân.

Chương trình chuyển đổi từ thập phân sang thập lục phân trong C ++

Ví dụ

Input-: 6789
   Divide the 6789 with base 16 : 6789 / 16 = 5 (remainder) 424(quotient)
   Divide quotient with base: 424 / 16 = 8(remainder) 26(quotient)
   Divide quotient with base: 26 / 16 = 10(remainder) 1(quotient)
   Now reverse the remainder obtained for final hexadecimal value.
Output-: 1A85

Thuật toán

Start
Step 1-> Declare function to convert decimal to hexadecimal
   void convert(int num)
      declare char arr[100]
      set int i = 0
      Loop While(num!=0)
         Set int temp = 0
         Set temp = num % 16
         IF temp < 10
            Set arr[i] = temp + 48
            Increment i++
         End
         Else
            Set arr[i] = temp + 55
            Increment i++
         End
         Set num = num/16
      End
      Loop For int j=i-1 j>=0 j—
         Print arr[j]
Step 2-> In main()
   Set int num = 6789
   Call convert(num)
Stop

Ví dụ

#include<iostream>
using namespace std;
//convert decimal to hexadecimal
void convert(int num) {
   char arr[100];
   int i = 0;
   while(num!=0) {
      int temp = 0;
      temp = num % 16;
      if(temp < 10) {
         arr[i] = temp + 48;
         i++;
      } else {
         arr[i] = temp + 55;
         i++;
      }
      num = num/16;
   }
   for(int j=i-1; j>=0; j--)
   cout << arr[j];
}
int main() {
   int num = 6789;
   cout<<num<< " converted to hexadeciaml: ";
   convert(num);
   return 0;
}

Đầu ra

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

6789 converted to hexadeciaml: 1A85