在C ++中将数字转换为十六进制

为了解决这个问题,我们将遵循以下步骤-

  • 如果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