新闻中心

C++ 16进制转10进制_C++ hex字符串转int

2025-11-28
浏览次数:
返回列表
使用std::stoi可将十六进制字符串转为十进制整数,如"1A"转为26,支持指定进制参数16或自动识别0x前缀,推荐并配合异常处理以应对非法输入。

c++ 16进制转10进制_c++ hex字符串转int

在C++中,将16进制字符串(hex string)转换为十进制整数(int)是一个常见的需求。比如你有一个表示16进制数的字符串如 "1A",想把它转成对应的十进制值 26。下面介绍几种简单有效的方法。

使用 std::stoi 或 std::stol

最简单的方式是使用标准库中的 std::stoistd::stol 函数,它们支持自动识别16进制格式(前提是字符串以 0x 开头或指定进制)。

  • 如果字符串包含 0x 前缀,可以设置进制为 0,让函数自动判断
  • 如果没有前缀,直接指定 base = 16

示例代码:

N世界 N世界

一分钟搭建会展元宇宙

N世界 138 查看详情 N世界
#include <iostream>
#include <string>

int main() {
    std::string hex_str = "1A";
    int value = std::stoi(hex_str, nullptr, 16);
    std::cout << "Hex " << hex_str << " -> Dec " << value << std::endl;
    return 0;
}

输出结果:Hex 1A -> Dec 26

使用 std::stringstream

另一种方法是使用 std::stringstream 配合 std::hex 操纵符。

示例代码:

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

int hex_to_int(const std::string& hex_str) {
    std::stringstream ss;
    ss << hex_str;
    int value;
    ss >> std::hex >> value;
    return value;
}

int main() {
    std::string hex_str = "1A";
    int value = hex_to_int(hex_str);
    std::cout << "Hex " << hex_str << " -> Dec " << value << std::endl;
    return 0;
}

处理带 0x 前缀的情况

如果输入字符串形如 "0x1A" 或 "0XFF",上面的方法依然适用。使用 std::stoi 时传入 base=0 可以自动识别前缀。

示例:

std::string hex_str = "0x1A";
int value = std::stoi(hex_str, nullptr, 0); // base 0 表示自动检测进制

这样即使有 0x 前缀也能正确解析。

错误处理建议

实际使用中建议加入异常处理,防止无效输入导致程序崩溃。

try {
    int value = std::stoi("GG", nullptr, 16); // 非法字符
} catch (const std::invalid_argument&) {
    std::cout << "Invalid input!" << std::endl;
} catch (const std::out_of_range&) {
    std::cout << "Value out of range!" <;< std::endl;
}

基本上就这些常用方法。对于大多数场景,用 std::stoi(str, nullptr, 16) 是最简洁高效的选择。

以上就是C++ 16进制转10进制_C++ hex字符串转int的详细内容,更多请关注其它相关文章!


# 中文网  # 海南营销策划推广公司  # 长垣seo优化排名  # 宁波网站推广点有哪些  # 抚顺关键词优化排名软件  # 短视频seo压制  # 池州网站建设推广  # 赣州专业网站建设  # 群关键词唯独有个排名低  # 网站建设预算怎么做好  # 水泥厂网站优化  # 几种  # 如果没有  # ai  # 相关文章  # 你有  # 也能  # 边缘  # 是一个  # 游戏开发  # 自动识别  # 标准库  # stream  # ios  # c++ 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 我的世界mc.js免费游戏直接能玩 我的世界mc.js小游戏免费秒玩入口  高德地图怎么看全景照片_高德地图全景照片浏览教程  163邮箱注册官网 免费申请163个人邮箱  微信怎么把收藏的内容分类管理 微信收藏内容标签分类方法  小米14应用无法联网原因分析_小米14网络权限修复  护手霜蹭到袖口上了如何清洗? 怎样避免留下一圈油印?  J*a 递归快速排序中静态变量的状态管理与陷阱  J*aScript中高效管理与清空动态列表:避免循环陷阱  Composer的 archive 命令怎么用_快速打包你的PHP项目及其Composer依赖  微信网页版扫码登录入口 微信网页版二维码登录入口  Windows 11怎么彻底关闭定位_Windows 11服务中禁用Geolocation  c++ 获取系统当前时间 c++时间戳获取方法  构建轻量级网站内部消息系统:Formspree 集成指南  PDF文件体积过大处理_PDF压缩技巧详解  在J*aScript中复现SciPy的B样条拟合与求值:关键考量  优化 Python 函数中的条件逻辑:解决 if-else 嵌套与参数选择问题  Django AJAX 文件上传教程:解决图片无法保存到模型的常见问题  Yandex免登录官网入口_俄罗斯Yandex搜索引擎直达链接  c++如何实现单例设计模式_c++线程安全的单例模式写法  Pygame教程:解决用户输入与游戏状态更新不同步问题  网易大神账号申诉需要多久_网易大神账号申诉流程说明  《明末:渊虚之羽》设计师谈设计角色:那会刚毕业 充满激情  快速CSGO开箱网站指南 CSGO开箱平台推荐  b站怎么删除评论_b站评论管理与删除操作  高德地图总提示网络异常怎么办 高德地图离线导航设置与网络排查方法  DLsite中文平台入口 DLsite官网内容在线查看  UC浏览器如何安装插件 UC浏览器添加扩展程序详细教程【进阶】  Golang如何测试channel通信行为_Golang channel通信测试与分析方法  zookeeper 都有哪些功能?  如何在J*a中使用Locale处理多语言环境  C++ explicit关键字防止隐式转换_C++构造函数安全规范  星露谷物语官网入口 星露谷物语游戏官网入口  php源码怎么在电脑上测试_电脑测试php源码方法步骤【教程】  PowerPoint如何制作滚动字幕结尾彩蛋_PowerPoint路径动画实现平滑滚动字幕效果  如何解决电商平台定制报价请求的“黑洞”问题,SprykerQuoteRequest模块助你提升客户体验与销售效率  12306选座如何查看座位示意图_12306座位示意图解读与使用  Win10双系统截图高效法 截屏快捷键速记【技巧】  搜狗浏览器如何使用密码生成器创建强密码 搜狗浏览器内置密码安全工具  动漫岛观看全网网 动漫岛在线正版动漫入口  Safari自带网页翻译功能怎么用 无需插件轻松看懂外文网站【方法】  Selenium Python中处理点击后新窗口加载冻结问题的策略与实践  解决Python logging 中 datefmt 导致时间戳固定不变的问题  AO3镜像入口大全 AO3网页版内容访问全集  《北京人工智能产业白皮书(2025)》发布:全年核心产值预计突破 4500 亿元  必由学官方平台入口 必由学在线课堂登录地址  如何在 Windows 11 中启动游戏手柄设置  在Go Martini框架中高效服务动态生成图像的实践指南  韩小圈电脑版在线入口_网页版免费登录地址  使用Pandas转换并合并DataFrame:多列映射至统一结构  夸克浏览器桌面版同步不了书签怎么处理 夸克浏览器跨设备同步异常解决方案 

搜索