ในส่วนนี้ เราจะมาดูวิธีการแปลงสตริงทศนิยมเป็นสตริงฐานสิบหกและจากสตริงฐานสิบหกเป็นสตริงทศนิยมใน 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