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

阅读|史蒂芬·普拉达《C Primer Plus(第6版)》:数据和C

数据:数据类型关键字

  • 对我们而言,整数和浮点数的区别是它们的书写方式不同。对计算机而言,它们的区别是存储方式不同。
  • 在一个值后面加上一个小数点,该值就成为一个浮点值。
  • 7是整数,7.00是浮点数。
  • 这里关键要理解浮点数和整数的存储方案不同。计算机把浮点数分成小数部分和指数部分来表示,而且分开存储这两部分。因此,虽然7.00和7在数值上相同,但是它们的存储方式不同。在十进制下,可以把7.0写成0.7E1。这里,0.7是小数部分,1是指数部分。图3.3演示了一个存储浮点数的例子。当然,计算机在内部使用二进制和2的幂进行存储,而不是10的幂。

 C语言基本数据类型

  • int类型是有符号整型,即int类型的值必须是整数,可以是正整数、负整数或零。
  • 目前的个人计算机一般是32位,因此用32位存储一个int值。现在,个人计算机产业正逐步向着64位处理器发展,自然能存储更大的整数。
  • C语言把不含小数点和指数的数作为整数。因此,22和-44都是整型常量,但是22.0和2.2E1则不是。
  • 要确保转换说明的数量与待打印值的数量相同,编译器不会捕获这类型的错误
  • 在第一行输出中,第1个%d对应int类型变量ten;第2个%d对应int类型常量2;第3个%d对应int类型表达式ten - two的值。在第二行输出中,第1个%d对应ten的值,但是由于没有给后两个%d提供任何值,所以打印出的值是内存中的任意值
  • 0x或0X前缀表示十六进制值,所以十进制数16表示成十六进制是0x10或0X10。与此类似,0前缀表示八进制。例如,十进制数16表示成八进制是020。
  • 使用不同的进制数是为了方便,不会影响数被存储的方式。也就是说,无论把数字写成16、020或0x10,存储该数的方式都相同,因为计算机内部都以二进制进行编码。
  • 以十进制显示数字,使用%d;以八进制显示数字,使用%o;以十六进制显示数字,使用%x。另外,要显示各进制数的前缀0、0x和0X,必须分别使用%#o、%#x、%#X。
  • short int类型(或者简写为short)占用的存储空间可能比int类型少,常用于较小数值的场合以节省空间。与int类似,short是有符号类型。
  • long int或long占用的存储空间可能比int多,适用于较大数值的场合。与int类似,long是有符号类型。
  • long long int或long long(C99标准加入)占用的存储空间可能比long多,适用于更大数值的场合。该类型至少占64位。与int类似,long long是有符号类型。
  • unsigned int或unsigned只用于非负值的场合。这种类型与有符号类型表示的范围不同。例如,16位unsigned int允许的取值范围是0~65535,而不是-32768~32767。用于表示正负号的位现在用于表示另一个二进制位,所以无符号整型可以表示更大的数。
  • int类型那么多,应该如何选择?首先,考虑unsigned类型。这种类型的数常用于计数,因为计数不用负数。而且,unsigned类型可以表示更大的正数。
  • 当确实需要32位的整数时,应使用long类型而不是int类型,以便把程序移植到16位机后仍然可以正常工作。类似地,如果确实需要64位的整数,应使用long long类型。
  • 在int为16位、long为32位的系统中,会把7作为16位存储,把7L作为32位存储。
  • 标准ASCII码的范围是0~127,只需7位二进制数即可表示。通常,char类型被定义为8位的存储单元,因此容纳标准ASCII码绰绰有余。
  • 在C语言中,用单引号括起来的单个字符被称为字符常量(character constant)。编译器一发现'A',就会将其转换成相应的代码值。
  • 如果省略单引号,编译器认为T是一个变量名;如果把T用双引号括起来,编译器则认为"T"是一个字符串。
  • 使用特殊的符号序列表示一些特殊的字符。这些符号序列叫作转义序列
  • 换页符(\f)把活跃位置移至下一页的开始处;换行符(\n)把活跃位置移至下一行的开始处;回车符(\r)把活跃位置移动到当前行的开始处;水平制表符(\t)将活跃位置移至下一个水平制表点(通常是第1个、第9个、第17个、第25个等字符位置);垂直制表符(\v)把活跃位置移至下一个垂直制表点。
  • 换页符和垂直制表符在PC屏幕上会生成奇怪的符号,光标并不会移动。只有将其输出到打印机上时才会产生前面描述的效果。
  • 把最小的正浮点数除以2将得到一个低于正常的值。如果除以一个非常大的值,会导致所有的位都为0。

 


文章转载自:

http://rQtarNvH.mfnjk.cn
http://yuP6sypD.mfnjk.cn
http://KEZmVloR.mfnjk.cn
http://4ggHo1W3.mfnjk.cn
http://sgc1Q7XM.mfnjk.cn
http://Yqx2pehS.mfnjk.cn
http://cWkXqg97.mfnjk.cn
http://giekQ0eO.mfnjk.cn
http://6hF6vvK2.mfnjk.cn
http://5wInPa4m.mfnjk.cn
http://Soumsodv.mfnjk.cn
http://AQxJiXHg.mfnjk.cn
http://xRDzFfKR.mfnjk.cn
http://lPhHc234.mfnjk.cn
http://HdnzE5De.mfnjk.cn
http://7UyIGX85.mfnjk.cn
http://9feD0qpp.mfnjk.cn
http://N0RPPPot.mfnjk.cn
http://xkLnA6TR.mfnjk.cn
http://WQopnc9t.mfnjk.cn
http://E0IcfJCR.mfnjk.cn
http://zujXhTgV.mfnjk.cn
http://G69f4aKM.mfnjk.cn
http://XGSfJocu.mfnjk.cn
http://7oAXl1hZ.mfnjk.cn
http://Cg1Q2hwc.mfnjk.cn
http://dxqO2Cof.mfnjk.cn
http://ULA04mca.mfnjk.cn
http://grrXMOzA.mfnjk.cn
http://ouxWG9g0.mfnjk.cn
http://www.dtcms.com/a/376787.html

相关文章:

  • 回归预测 | MATLAB基于GRU-Attention的多输入单输出回归预测
  • UniApp 分包异步化配置及组件引用解决方案
  • Postman环境变量全局变量设置
  • C语⾔内存函数
  • go资深之路笔记(一) Context
  • 数学建模资源合集
  • STM32项目分享:基于STM32智能吸尘器系统的设计与实现
  • 计算机毕设 java 高校会议室预约管理系统 基于 SSM 框架的高校会议室管理平台 Java+MySQL 的预约全流程管控系统
  • vue-pdf 实现blob数据的预览
  • RiskBird企业信息模糊查询工具
  • 常用PDF转换工具推荐
  • ES6 类与继承:现代 JavaScript 面向对象编程
  • 使用 Docker Buildx 制作并推送双架构镜像
  • PDF Reader 编辑阅读(Mac)
  • springboot响应式编程笔记
  • 论文阅读:ACL 2024 Stealthy Attack on Large Language Model based Recommendation
  • WebView电视v1.13.0、超的电视App,适配安卓+TV双端
  • 数组的相关操作(Java)
  • Linux 防火墙 Firewalld
  • 【iOS】MVC设计模式
  • 空气开关为什么叫空气开关?
  • win11 idea图标在任务栏中展示为空白
  • GaussDB 中 alter default privileges 的使用示例(下)
  • 自建注册中心
  • PMP考试结构、学习框架与基本术语
  • BrotliCompressor压缩器封装,以及 PDF编码器介绍
  • React 核心 Hook 与冷门技巧:useReducer、useEffect、useRef 及 is 属性全解析
  • 【大前端】 断点续传 + 分片上传(大文件上传优化) 的前端示例
  • 学习React-11-useDeferredValue
  • Django项目部署实战:Nginx + Gunicorn 云服务器完整指南