สมมติว่าเรามีจำนวนเต็ม เราต้องสร้างอัลกอริทึมเพื่อแปลงเป็นเลขฐานสิบหก สำหรับจำนวนลบ เราจะใช้วิธีการเสริมของทั้งสอง
ดังนั้น หากอินพุตเป็น 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