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

关于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.dtcms.com/a/57998.html

相关文章:

  • K8S单机部署
  • 中级网络工程师面试题参考示例(1)
  • filter_var()函数用于过滤和验证用户输入的数据
  • 强化学习中的值迭代算法与实现
  • 又一次流量分析
  • 每日一题之召唤数学精灵
  • Swift Package Manager (SPM) 创建并集成本地库
  • Java中的 异常
  • DP 问题 -- LQR中的DP问题
  • π0及π0_fast的源码剖析——核心模块src的全面分析与解读:如何实现PaLI-Gemma、如何去噪生成动作
  • 【鸿蒙开发】OpenHarmony调测工具hdc使用教程(设备开发者)
  • Spring(七)AOP-代理模式
  • 【大模型安全】安全解决方案
  • VanillaVueSvelteReactSolidAngularPreact前端框架/库的简要介绍及其优势
  • C++Primer学习(函数基础6.1)
  • Day6 DFS
  • 17.用户态与内核态
  • 手脑革命:拆解Manus AI如何用“执行智能体”重构生产力——中国团队突破硅谷未竟的技术深水区
  • 《AI浪潮下的创新枢纽:火山引擎大模型应用实验室平台》
  • 登录固定账号和密码:
  • JavaScript基础-比较运算符
  • JavaWeek1-方法构造继承,字符串和可变数组
  • 量子纠缠到处存在--双鱼青铜镜投影--互相包含
  • Roo-Code 核心实现分析
  • 蓝桥-反倍数-oj152
  • 模型的原始输出为什么叫 logits
  • Vue Router:构建单页应用的核心利器
  • 《WebForms 实例》
  • 自定义组件渲染search框
  • ​数据库索引:数据检索的加速引擎