在 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+ 瀏覽量

開啟你的 職業

透過完成該課程獲得認證

開始
廣告