Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menukar Integer dengan Cekap kepada Rentetan Perenambelasan dalam C?

Bagaimanakah Saya Boleh Menukar Integer dengan Cekap kepada Rentetan Perenambelasan dalam C?

Patricia Arquette
Patricia Arquetteasal
2025-01-01 07:51:10667semak imbas

How Can I Efficiently Convert Integers to Hexadecimal Strings in C  ?

Menukar Integer kepada Rentetan Hex dalam C

Walaupun mudah, penukaran integer kepada rentetan hex dalam C boleh menimbulkan cabaran kepada pembangun. Tidak seperti C, C tidak mempunyai kaedah asli untuk penukaran ini.

Walau bagaimanapun, seseorang boleh memanfaatkan kuasa perpustakaan untuk mencapai tugasan ini. Manipulator std::hex memainkan peranan penting dalam proses ini. Dengan memasukkannya ke dalam strim output, integer boleh dicetak dalam format heksadesimal.

std::cout << std::hex << your_int;

Untuk menangkap perwakilan rentetan heks bagi integer untuk kegunaan kemudian, pertimbangkan untuk menggunakan objek std::stringstream.

std::stringstream stream;
stream << std::hex << your_int;
std::string result(stream.str());

Dalam contoh di atas, awalan 0x boleh ditambah pada << operasi, jika dikehendaki.

Manipulator nota tambahan termasuk std::oct (octal) dan std::dec (decimal).

Walau bagaimanapun, std::hex manipulator secara lalai menghasilkan rentetan perwakilan yang mengandungi hanya bilangan digit heks yang diperlukan. Jika lebar tertentu dikehendaki, std::setfill dan std::setw boleh digunakan.

stream << std::setfill('0') << std::setw(sizeof(your_type) * 2)
       << std::hex << your_int;

Akhir sekali, fungsi generik boleh ditakrifkan untuk mengendalikan penukaran integer-ke-hex:

template< typename T >
std::string int_to_hex( T i )
{
  std::stringstream stream;
  stream << "0x"
         << std::setfill ('0') << std::setw(sizeof(T)*2)
         << std::hex << i;
  return stream.str();
}

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Integer dengan Cekap kepada Rentetan Perenambelasan dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn