0

0

C++ char和int怎么转换 C++字符与ASCII码互转方法【基础】

冰火之心

冰火之心

发布时间:2026-02-04 16:02:02

|

483人浏览过

|

来源于php中文网

原创

C++中char与int转换本质是同一内存的两种解释:char转int取ASCII值但需防符号扩展,应先转unsigned char;int转char截断低8位,超范围结果由实现定义。

c++ char和int怎么转换 c++字符与ascii码互转方法【基础】

直接说结论:C++ 中 charint 的转换本质是同一块内存的两种解释方式,不需“转换函数”,但必须明确意图——是取 ASCII 值,还是按字节解释为有符号/无符号整数。

char 转 int:取 ASCII 值最常用,但要注意符号扩展

把字符当数字用(比如 'A'65),直接赋值即可:

char c = 'A';
int i = c;  // i == 65

但危险点在于:如果 char 是有符号类型(多数平台默认如此),且值 ≥ 128(如 \xFF),会触发符号扩展:

  • char c = '\xFF'; 在有符号 char 下实际是 -1
  • int i = c; 结果是 -1,不是 255
  • 想得到 0–255 范围的值,应先转 unsigned char 再转 intint i = (unsigned char)c;

int 转 char:截断高位,只保留低 8 位

把整数当单字节字符存(比如 97'a'),也直接赋值:

立即学习C++免费学习笔记(深入)”;

智谱AI开放平台
智谱AI开放平台

智谱AI大模型开放平台-新一代国产自主通用AI开放平台

下载
int i = 97;
char c = i;  // c == 'a'

但注意:

  • 只取 i 的低 8 位(i & 0xFF),高位全丢,2651 都变成 '\x01'
  • i 超出 char 表示范围(如 i = 300),结果由实现定义,通常仍是低 8 位
  • 若目标是安全写入可打印字符,建议先做范围检查:if (i >= 0 && i 或按需用 unsigned char

处理非 ASCII 字符(UTF-8 场景)要格外小心

上面所有操作都只适用于单字节字符。遇到中文、emoji 等 UTF-8 编码字符时:

  • 一个汉字在 UTF-8 中占 3 字节,char 只能存其中 1 字节,单独转 int 没有意义
  • std::string[i] 返回 char,不是“第 i 个字符”,而是“第 i 个字节”
  • 真要处理 Unicode 字符,得用 std::u8string + char8_t(C++20),或第三方库如 ICU、utf8cpp

最容易被忽略的一点:编译器不保证 char 是 signed 还是 unsigned,g++ 默认 signed,MSVC 默认 unsigned。跨平台代码里,涉及字节值比较或算术运算时,显式用 signed charunsigned char 更稳妥。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

791

2023.08.22

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

564

2023.08.02

int占多少字节
int占多少字节

int占4个字节,意味着一个int变量可以存储范围在-2,147,483,648到2,147,483,647之间的整数值,在某些情况下也可能是2个字节或8个字节,int是一种常用的数据类型,用于表示整数,需要根据具体情况选择合适的数据类型,以确保程序的正确性和性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

547

2024.08.29

c++怎么把double转成int
c++怎么把double转成int

本专题整合了 c++ double相关教程,阅读专题下面的文章了解更多详细内容。

153

2025.08.29

C++中int的含义
C++中int的含义

本专题整合了C++中int相关内容,阅读专题下面的文章了解更多详细内容。

204

2025.08.29

常见的编码方式
常见的编码方式

常见的编码方式有ASCII编码、Unicode编码、UTF-8编码、UTF-16编码、GBK编码等。想了解更多编码方式相关内容,可以阅读本专题下面的文章。

605

2023.10.24

a和A对应的ASCII码数值
a和A对应的ASCII码数值

a的ascii码是65,a的ascii码是97;ascii码表中,一个字母的大小写数值相差32,一般知道大写字母的ascii码数值,其对应的小写字母的ascii码数值就算出来了,是大写字母的ascii码数值“+32”。想了解更多相关的内容,可阅读本专题下面的相关文章。

2163

2024.10.24

全国统一发票查询平台入口合集
全国统一发票查询平台入口合集

本专题整合了全国统一发票查询入口地址合集,阅读专题下面的文章了解更多详细入口。

19

2026.02.03

短剧入口地址汇总
短剧入口地址汇总

本专题整合了短剧app推荐平台,阅读专题下面的文章了解更多详细入口。

27

2026.02.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CSS3 教程
CSS3 教程

共18课时 | 5.1万人学习

Sass 教程
Sass 教程

共14课时 | 0.8万人学习

Pandas 教程
Pandas 教程

共15课时 | 1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号