亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索

c++中如何將十六進(jìn)制轉(zhuǎn)為十進(jìn)制_c++十六進(jìn)制轉(zhuǎn)十進(jìn)制方法

裘德小鎮(zhèn)的故事
發(fā)布: 2025-09-29 17:49:01
原創(chuàng)
1041人瀏覽過
C++中常用std::stoi和std::stringstream將十六進(jìn)制字符串轉(zhuǎn)為十進(jìn)制整數(shù)。1. 使用std::stoi時(shí),指定基數(shù)16可直接轉(zhuǎn)換無前綴的十六進(jìn)制字符串,如"1A"轉(zhuǎn)為26;若字符串含"0x"前綴(如"0x1A"),可將基數(shù)設(shè)為0,std::stoi會(huì)自動(dòng)識(shí)別進(jìn)制。2. 使用std::stringstream需結(jié)合std::hex,通過流操作將字符串解析為十進(jìn)制值,適用于需要靈活處理多種進(jìn)制的場(chǎng)景。3. 實(shí)際應(yīng)用中應(yīng)添加異常處理,捕獲std::invalid_argument(非法字符)和std::out_of_range(數(shù)值溢出)異常,確保程序健壯性。推薦優(yōu)先使用std::stoi,簡(jiǎn)潔高效,復(fù)雜場(chǎng)景選用stringstream。

c++中如何將十六進(jìn)制轉(zhuǎn)為十進(jìn)制_c++十六進(jìn)制轉(zhuǎn)十進(jìn)制方法

在C++中,將十六進(jìn)制字符串轉(zhuǎn)換為十進(jìn)制整數(shù)有多種方法,最常用的是使用標(biāo)準(zhǔn)庫中的 std::stoistd::stringstream。下面介紹幾種實(shí)用且清晰的實(shí)現(xiàn)方式。

使用 std::stoi 轉(zhuǎn)換十六進(jìn)制

std::stoi 支持自動(dòng)識(shí)別十六進(jìn)制格式(以 "0x" 或 "0X" 開頭),也可以通過參數(shù)指定基數(shù)。

示例代碼:

#include <string>
#include <iostream>

int main() {
????std::string hex_str = "1A";
????int decimal = std::stoi(hex_str, nullptr, 16);
????std::cout << "十六進(jìn)制 " << hex_str << " 轉(zhuǎn)為十進(jìn)制是 " << decimal << std::endl;
????return 0;
}

輸出結(jié)果:
十六進(jìn)制 1A 轉(zhuǎn)為十進(jìn)制是 26

說明:第三個(gè)參數(shù) 16 表示按十六進(jìn)制解析字符串,無需加 "0x" 前綴也能正確轉(zhuǎn)換。

立即學(xué)習(xí)C++免費(fèi)學(xué)習(xí)筆記(深入)”;

使用 stringstream 進(jìn)行轉(zhuǎn)換

利用 std::stringstream 和操作符 std::hex,可以更靈活地處理輸入。

示例代碼:

#include <sstream>
#include <string>
#include <iostream>

int main() {
????std::string hex_str = "1A";
????std::stringstream ss;
????int decimal;
????ss << std::hex << hex_str;
????ss >> decimal;
????std::cout << "十進(jìn)制值為:" << decimal << std::endl;
????return 0;
}

這種方式適合在需要混合處理多種進(jìn)制時(shí)使用。

快轉(zhuǎn)字幕
快轉(zhuǎn)字幕

新一代 AI 字幕工作站,為創(chuàng)作者提供字幕制作、學(xué)習(xí)資源、會(huì)議記錄、字幕制作等場(chǎng)景,一鍵為您的視頻生成精準(zhǔn)的字幕。

快轉(zhuǎn)字幕357
查看詳情 快轉(zhuǎn)字幕

支持帶 0x 前綴的字符串

如果輸入包含 "0x",比如 "0x1A",上面的方法依然有效。

使用 std::stoi 示例:

std::string hex_str = "0x1A";
int decimal = std::stoi(hex_str, nullptr, 0); // 基數(shù)設(shè)為 0,自動(dòng)識(shí)別

當(dāng)?shù)谌齻€(gè)參數(shù)為 0 時(shí),std::stoi 會(huì)根據(jù)前綴自動(dòng)判斷進(jìn)制(0x 表示十六進(jìn)制,0 表示八進(jìn)制,否則為十進(jìn)制)。

錯(cuò)誤處理建議

實(shí)際使用中應(yīng)檢查輸入是否合法,避免程序崩潰。

例如:

try {
????std::string input = "GHI"; // 非法十六進(jìn)制字符
????int value = std::stoi(input, nullptr, 16);
} catch (const std::invalid_argument& e) {
????std::cout << "無效參數(shù):不是合法的十六進(jìn)制字符串" << std::endl;
} catch (const std::out_of_range& e) {
????std::cout << "數(shù)值超出范圍" << std::endl;
}

加上異常處理能提升程序穩(wěn)定性。

基本上就這些。選擇 std::stoi 最簡(jiǎn)潔,stringstream 更適合復(fù)雜場(chǎng)景,注意處理異常和非法輸入即可。

以上就是c++++中如何將十六進(jìn)制轉(zhuǎn)為十進(jìn)制_c++十六進(jìn)制轉(zhuǎn)十進(jìn)制方法的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!

c++速學(xué)教程(入門到精通)
c++速學(xué)教程(入門到精通)

c++怎么學(xué)習(xí)?c++怎么入門?c++在哪學(xué)?c++怎么學(xué)才快?不用擔(dān)心,這里為大家提供了c++速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!

下載
來源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn
最新問題
開源免費(fèi)商場(chǎng)系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)