在 C++ 中将数字转换为十六进制
假设我们有一个整数;我们必须设计一个算法,将其转换为十六进制。对于负数,我们将使用二进制补码法。
因此,如果输入像 254 和 -12,则输出将分别为 fe 和 fffffff4。
为了解决这个问题,我们将遵循以下步骤:
如果 num1 与 0 相同,则 −
返回 "0"
num := num1
s := 空白字符串
在 num 为非零时,执行 −
temp := num mod 16
如果 temp <= 9,则 −
s := s + temp 作为数字字符
否则
s := s + temp 作为字母
num := num / 16
反转数组 s
返回 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
广告