Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menukar Rentetan C Hex kepada Integer Bertanda?
C Rentetan Hex kepada Penukaran Integer Ditandatangani
Andaikan anda mempunyai rentetan perenambelasan dan ingin menukarkannya kepada integer 32-bit yang ditandatangani C . Sebagai contoh, diberikan rentetan hex "fffefffe", perwakilan binari ialah 1111111111111111011111111111111110. Ini mewakili integer bertanda -65538.
Prosedur Penukaran:Untuk menjalankan ini:
penukaran dengan berkesan, gunakan std::stringstream seperti berikut:
unsigned int x; std::stringstream ss; ss << std::hex << "fffefffe"; ss >> x;
Contohnya, coretan kod berikut menghasilkan -65538:
#include <sstream> #include <iostream> int main() { unsigned int x; std::stringstream ss; ss << std::hex << "fffefffe"; ss >> x; // Output as a signed type std::cout << static_cast<int>(x) << std::endl; }
Fungsi Penukaran Rentetan C 11:
Untuk C 11 atau lebih baru, rentetan baharu kepada utiliti nombor memudahkan proses ini. Fungsi "stol" (rentetan kepada panjang) dan "stoul" (rentetan kepada panjang tidak bertanda) menyediakan pembalut nipis di sekeliling keupayaan penukaran rentetan C.
std::string s = "0xfffefffe"; unsigned int x = std::stoul(s, nullptr, 16);
Pertimbangan Tambahan:
Perhatikan bahawa Boost juga menyediakan fungsi yang berguna untuk penukaran ini, termasuk semakan ralat keupayaan.
Walau bagaimanapun, untuk kesederhanaan dan mudah alih, adalah disyorkan untuk menggunakan aliran rentetan terbina dalam atau fungsi utiliti C 11 yang dibentangkan di sini.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan C Hex kepada Integer Bertanda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!