当前位置: 首页 > article >正文

关于C++数据类型char的类型是整数的思考

  • 学习数据类型时,整数类型中有一个特殊的类型char,可以使用字符来为其赋,也可以用整数来为其赋值,这是怎么一回事?
  • 其实任何类型,在计算机的内存中,在最小的存储单元比特中,内部只有0或1
  • 因此计算机能完成如此复杂的工作,就是其对这些0或1的解读
  • 同样道理,char类型诞生于计算机早期内存还很珍贵的时期,用最小存储单元字节,即8个比特来存储数字,并作为最小类型,几乎是天经地义的
  • 但是计算机不能把东西存入就可以的了,最重要的是对这些0或1的解读
  • 比如第一位是符号,也是在第2位到8位的0或1看作是小数的指数部分等
  • 而char之所以诞生还有一个重要,让这些0或1转化成人类的可以读的日常符号来打印到屏幕上
  • char类型的本质还是一个容量小一些的容器,无符号正整数范围是0-255,而有符号范围是-128至127
  • char类型变量在赋值时,可以使用整数或字符都可以
  • 如要是以字符来为其赋值,本质上是先到ASCII表把将这个字符的二进制取出存入变量中,也就是在存储过程中,只有0或1写入内存中,根本就没有任何字符
  • char c = 'a'
  • char c = 97;
  • 当打印字符变量这个过程又逆转,发现内存中的存储是char类型,就到ASCII中把字符取出再打印,而不像其它类型直接打印而已
  • 如果std::cout << c + 0 << std::endl为什么可以打印整数97,这是因为其中的0是int类型,两种不同类型,会将小类型调整为至少int类型,而int类型打印就不再需要这种查找ASCII表,找对应字符过程的

http://www.kler.cn/a/576956.html

相关文章:

  • 从多智能体变成一个具有通过场景生成多个决策路径 并在实施的过程中优化决策路径 openmanus 致敬开源精神中的每一个孤勇者
  • HeapDumpBeforeFullGC和HeapDumpOnOutOfMemoryError区别
  • 【机器学习中的“模型穿越”问题:定义、解决方法】
  • 《探秘课程蒸馏体系“三阶训练法”:解锁知识层级递进式迁移的密码》
  • Vue3技术实践:基于XLSX与File-Saver的Excel高效导出方案
  • 《Linux C 智能 IO 矩阵:输入输出的自适应数据流转》
  • sdp与传统网络安全防护的区别 sdn 网络安全
  • iOS侧滑返回手势冲突处理
  • “Predict”和“Foresee”的区别
  • Windows 虚拟化架构解析:WSL 与 Hyper-V 及其对 Docker 部署的影响
  • 数据库事务的 ACID,通过MVCC能做什么
  • 线程的常见使用方法
  • K8S学习之基础十七:k8s的蓝绿部署
  • 分布式光伏发电的发展现状与前景
  • 【多模态感知的神经科学启示】
  • 手写识别革命:Manus AI如何攻克多语言混合识别难题(二)
  • deepin安装rust
  • 2025-03-08 学习记录--C/C++-PTA 习题10-2 递归求阶乘和
  • docker指令整理
  • 图片分类实战:食物分类问题(含半监督)