Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Convert a Number to Hexadecimal ใน C++

แนวคิด

สมมติว่ามีจำนวนเต็ม ให้ออกอัลกอริทึมแปลงเป็นเลขฐานสิบหก สำหรับจำนวนลบใช้วิธี two's complement

เช่น ถ้าอินพุตคือ 254 และ -12 ผลลัพธ์คือ fe และ fffffff4 ตามลำดับ

วิธีแก้:

  • ถ้า num1 เท่ากับ 0: คืนค่า "0"
  • num := num1
  • s := สตริงว่าง
  • while 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