在 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

更新日期: 10-6 月-2020

3K+ 浏览量

开启你的 职业

通过完成该课程获得认证

开始
广告