Computer >> Máy Tính >  >> Lập trình >> C ++

StringStream trong C ++ cho Thập phân đến Thập lục phân và ngược lại

Trong phần này, chúng ta sẽ thấy cách chuyển đổi chuỗi thập phân sang chuỗi thập lục phân và cả từ chuỗi hệ thập lục phân sang chuỗi thập phân trong C ++. Đối với chuyển đổi này, chúng tôi đang sử dụng tính năng chuỗi ký tự của C ++.

Các luồng chuỗi được sử dụng để định dạng, phân tích cú pháp, chuyển đổi một chuỗi thành các giá trị số, v.v. Hex là một trình thao tác IO. Nó tham chiếu đến luồng IO làm tham số và trả về tham chiếu đến chuỗi sau khi thao tác với nó.

Trong ví dụ sau, chúng ta sẽ thấy cách chuyển đổi số thập phân hoặc số thập lục phân.

Mã mẫu

#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;
}

Đầu ra

The hexadecimal value of 61 is: 3d

Trong ví dụ trên, chúng ta đang sử dụng toán tử trích xuất “<<” để chuyển từ thập phân thành hex. Trong ví dụ tiếp theo, chúng ta sẽ làm ngược lại. Trong ví dụ này, chúng tôi sẽ chuyển đổi chuỗi hex thành hex, sau đó sử dụng toán tử chèn “>>”, chúng tôi lưu trữ dòng chuỗi thành một số nguyên.

Mã mẫu

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;
}

Đầu ra

The Decimal value of 0x3d is: 61