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

StringStream ใน C ++ สำหรับทศนิยมเป็นเลขฐานสิบหกและย้อนกลับ


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