สมมติว่าเรามีจำนวนเต็ม เราต้องสร้างอัลกอริทึมเพื่อแปลงเป็นเลขฐานสิบหก สำหรับจำนวนลบ เราจะใช้วิธีการเสริมของทั้งสอง
ดังนั้น หากอินพุตเป็น 254 และ -12 เอาต์พุตจะเป็น fe และ fffffff4 ตามลำดับ
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
ถ้า num1 เท่ากับ 0 แล้ว −
-
ส่งคืน "0"
-
-
num :=num1
-
s :=สตริงว่าง
-
ในขณะที่ num ไม่ใช่ศูนย์ ให้ทำ -
-
temp :=num mod 16
-
ถ้าอุณหภูมิ <=9 แล้ว −
-
s :=s + temp เป็นอักขระตัวเลข
-
-
มิฉะนั้น
-
s :=s + temp เป็นตัวอักษร
-
-
นัม :=นัม / 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