Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menukar Rentetan C Hex kepada Integer Bertanda?

Bagaimana untuk Menukar Rentetan C Hex kepada Integer Bertanda?

Patricia Arquette
Lepaskan: 2024-12-27 20:45:14
asal
1026 orang telah melayarinya

How to Convert a C   Hex String to a Signed Integer?

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;
Salin selepas log masuk

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;
}
Salin selepas log masuk

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);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan