ในส่วนนี้ เราจะมาดูวิธีการแปลงสตริงทศนิยมเป็นสตริงฐานสิบหกและจากสตริงฐานสิบหกเป็นสตริงทศนิยมใน C++ สำหรับการแปลงนี้ เราใช้คุณลักษณะสตริงสตรีมของ C++
สตรีมสตริงใช้สำหรับการจัดรูปแบบ แยกวิเคราะห์ แปลงสตริงเป็นค่าตัวเลข เป็นต้น Hex เป็นตัวจัดการ IO ใช้การอ้างอิงสตรีม IO เป็นพารามิเตอร์และส่งกลับการอ้างอิงไปยังสตริงหลังจากจัดการ
ในตัวอย่างต่อไปนี้ เราจะมาดูวิธีการแปลงเลขฐานสิบหรือเลขฐานสิบหก
โค้ดตัวอย่าง
#include<iostream> #include<sstream> using namespace std; main(){ int decimal = 61; stringstream my_ss; my_ss << hex << decimal; string res = my_ss.str(); cout << "The hexadecimal value of 61 is: " << res; }
ผลลัพธ์
The hexadecimal value of 61 is: 3d
ในตัวอย่างข้างต้น เราใช้ตัวดำเนินการแยก "<<" เพื่อรับทศนิยมเป็นเลขฐานสิบหก ในตัวอย่างต่อไปเราจะทำย้อนกลับ ในตัวอย่างนี้ เราจะแปลงสตริงฐานสิบหกเป็นเลขฐานสิบหก จากนั้นใช้ตัวดำเนินการแทรก “>>” เราจะเก็บสตรีมสตริงเป็นจำนวนเต็ม
โค้ดตัวอย่าง
using namespace std; main() { string hex_str = "0x3d"; //you may or may not add 0x before hex value unsigned int decimal; stringstream my_ss; my_ss << hex << hex_str; my_ss >> decimal; cout << "The Decimal value of 0x3d is: " << decimal; }
ผลลัพธ์
The Decimal value of 0x3d is: 61