정수가 있다고 가정합니다. 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