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

C++에서 숫자를 16진수로 변환


정수가 있다고 가정합니다. 16진수로 변환하는 알고리즘을 고안해야 합니다. 음수의 경우 2의 보수 방법을 사용합니다.

따라서 입력이 254 및 -12와 같으면 출력은 각각 fe 및 fffffff4가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • num1이 0과 같으면 -

    • "0" 반환

  • 숫자 :=숫자1

  • s :=빈 문자열

  • num이 0이 아닌 동안 수행 -

    • temp :=num 모드 16

    • 온도 <=9이면 -

      • s :=s + temp를 숫자로

    • 그렇지 않으면

      • s :=s + 알파벳으로 temp

    • 숫자 :=숫자 / 16

  • 배열 반전

  • 반환 s

예시

더 나은 이해를 위해 다음 구현을 살펴보겠습니다. −

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   string toHex(int num1){
      if (num1 == 0)
         return "0";
      u_int num = num1;
      string s = "";
      while (num) {
         int temp = num % 16;
         if (temp <= 9)
            s += (48 + temp);
         else
            s += (87 + temp);
         num = num / 16;
      }
      reverse(s.begin(), s.end());
      return s;
   }
};
main(){
   Solution ob;
   cout << (ob.toHex(254)) << endl;
   cout << (ob.toHex(-12));
}

입력

254
-12

출력

fe
fffffff4