Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 10진수에서 16진수로 변환하는 프로그램

<시간/>

10진수를 입력으로 하여 주어진 10진수를 16진수로 변환하는 작업입니다.

컴퓨터의 16진수는 16진수로 표시되고 10진수는 10진수로 표시되고 값 0-9로 표시되는 반면, 16진수는 0-15부터 시작하는 숫자를 가지며 10은 A, 11은 B, 12는 C, 13은 D, 14는 E, 15는 F입니다.

10진수를 16진수로 변환하려면 주어진 단계를 따르십시오 -

  • 먼저 주어진 숫자를 전환 숫자의 기본 값으로 나눕니다. 6789를 16으로 나누는 것은 6789를 밑이 16인 16진수로 변환한 다음 몫을 구하여 저장해야 하기 때문입니다. 나머지가 0-9 사이이면 그대로 저장하고 나머지가 10-15 사이에 있으면 A - F로 문자 형식으로 변환합니다.
  • 얻은 몫을 16진수의 밑값인 16으로 나누어 비트를 계속 저장합니다.
  • 저장된 비트로 계속 오른쪽 이동
  • 나머지가 더 이상 나눌 수 없을 때까지 단계를 반복합니다.

다음은 10진수를 16진수로 변환한 그림입니다.

C++에서 10진수에서 16진수로 변환하는 프로그램

예시

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

알고리즘

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

예시

#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;
}

출력

위의 코드를 실행하면 다음 출력이 생성됩니다.

6789 converted to hexadeciaml: 1A85