为了解决这个问题,我们将遵循以下步骤-
如果num1与0相同,则-
返回“ 0”
num:= num1
s:=空字符串
当num不为零时,执行-
s:= s + temp作为字母
s:= s + temp作为数字字符
temp:= num mod 16
如果temp <= 9,则-
除此以外
num:= num / 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