当前位置: 首页 > 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表,找对应字符过程的

相关文章:

  • 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浪潮下的创新枢纽:火山引擎大模型应用实验室平台》
  • 登录固定账号和密码:
  • 在线视频制作网站/站长之家点击进入
  • 雄安新区网站建设公司/网站关键词优化外包
  • asp学校网站系统/网络营销课程设计
  • html 网站首页/百度手机助手最新版下载
  • 网站建设费计什么科目/国际新闻大事
  • 网站怎么做适配/营销策划方案ppt模板