10.20学习

news2024/10/21 1:07:01

1.const

在 C 语言中, const  关键字用于定义一个常量。当你使用  const  声明一个变量时,意味着这个变量的值在初始化后不能被修改。这有助于防止程序中意外改变这个变量的值,同时也使得代码更易于理解,因为常量名通常能直观地表达其代表的含义。

const :常量修饰符,声明后面的变量为一个常量。

 使用常量而不是直接使用字面量(如  3.14159265 )的好处是,如果你需要在程序的多个地方使用圆周率,你可以统一使用  pi  这个常量。这样,如果未来需要修改圆周率的值,你只需要在声明处修改一次即可,而不需要在程序的每个使用处都进行修改。此外,使用常量也有助于代码的维护和可读性。

 

2.双/单精度浮点变量

①双精度浮点数(Double Precision Floating Point):

数据类型: double 

存储大小:通常占用8字节(64位)

精度:提供大约15到16位有效数字

范围:非常大,可以表示非常大或非常小的数

②单精度浮点数(Single Precision Floating Point):

数据类型: float 

存储大小:通常占用4字节(32位)

精度:提供大约7位有效数字

范围:相对较小,但仍足以覆盖大多数日常应用

★示例

以下是在 C 语言中声明单精度和双精度浮点变量的示例:

float singlePrecision = 3.14f; // 'f' 表示这是一个单精度浮点数字面量

double doublePrecision = 3.14; // 默认为双精度浮点数字面量

在这个示例中, singlePrecision  是一个单精度浮点变量,而  doublePrecision  是一个双精度浮点变量。注意,在声明单精度浮点数时,通常在数字后面加上字母  f  来表示这是一个单精度字面量。

★选择

选择使用单精度还是双精度浮点数取决于你的应用需求:

如果你需要较高的精度和较大的数值范围,使用双精度浮点数( double )。

如果你对内存使用有限制,或者需要处理大量的浮点数运算,且精度要求不是很高,可以考虑使用单精度浮点数( float )。

在进行科学计算或工程应用时,双精度通常更受欢迎,因为它提供了更高的精度。然而,在图形处理和游戏开发等领域,单精度浮点数由于其较小的内存占用和较快的处理速度,可能会更受青睐。

 

3.符号位

在计算机科学中,符号位(Sign Bit)是指用于表示一个数的正负的二进制位。在二进制数的表示中,符号位通常是最高位(最左边的位),它的值决定了整个数值的符号:

0:表示该数是正数或零。

1:表示该数是负数。

符号位的使用方法取决于数值的表示方式。以下是几种常见的数值表示方法:

①原码(True Form):

在原码表示法中,最左边的位用作符号位。剩下的位表示数值本身。

例如,5的原码表示为 00000101 (假设使用5位),而-5的原码表示为 10000101 。

②反码(One's Complement):

在反码表示法中,正数的符号位为0,负数的符号位为1。要得到一个数的反码,需要将正数的反码取反(即按位取反)并在末尾加0。

例如,5的反码表示为 00000101 ,而-5的反码表示为 11111010 。

③补码(Two's Complement):

补码是现代计算机中最常用的表示法。在补码表示法中,正数的补码与其原码相同,负数的补码是在其反码的基础上加1。

例如,5的补码表示为 00000101 ,而-5的补码表示为 11111011 。

补码的主要优点是简化了加法和减法的硬件实现,因为减去一个数等于加上它的补码。

符号位的使用对于整数和浮点数都是类似的,但在浮点数的表示中(如IEEE 754标准),符号位的使用略有不同。在单精度(32位)和双精度(64位)浮点数中:

符号位通常是最高位。

剩下的位用于表示指数和尾数(或称为有效数字)。

例如,在64位双精度浮点数中,第1位是符号位,接下来的11位用于表示指数,最后的52位用于表示尾数。

符号位的正确处理对于计算机中的算术运算至关重要,它确保了正负数能够被正确地表示和处理。

 

4.%lf与%d

在 C 语言中, %lf  和  %d  是两种不同类型的格式说明符,用于  printf 、 scanf  等输入/输出函数中,它们分别对应不同的数据类型:

①%lf :

这个格式说明符用于读取或写入  double  类型的浮点数。

 l  在格式说明符中表示长整型(long),用于  double  类型时,它指示相应的参数应该是  double  类型的值。

例如,在  printf  函数中使用  %lf  可以打印一个双精度浮点数:double num = 3.14159;

printf("The value is: %lf\n", num);

在  scanf  函数中使用  %lf  可以从标准输入读取一个双精度浮点数:double num;

scanf("%lf", &num);

②%d :

这个格式说明符用于读取或写入  int  类型的整数。

 d  代表“decimal”,用于指示相应的参数应该是  int  类型的值。

例如,在  printf  函数中使用  %d  可以打印一个整数:int num = 42;

printf("The number is: %d\n", num);

在  scanf  函数中使用  %d  可以从标准输入读取一个整数:int num;

scanf("%d", &num);

总结来说, %lf  和  %d  的主要区别在于它们处理的数据类型不同: %lf  用于双精度浮点数,而  %d  用于整数。正确使用这些格式说明符可以确保程序能够正确地读取和输出不同类型的数据。

 

5.ASCII码

ASCII码(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。

ASCII码使用8位二进制数组合(正好一个字节)来表示0到255共256种可能的字符。

前128个字符是标准ASCII码,表示所有的大小写字母、数字0到9、标点符号,以及在美式英语中使用的特殊控制字符。

后128个字符是扩展ASCII码,一般用来表示特殊符号、外来语字母和图形符号。

 

6.字符型常量

字符型常量是由一对单引号括起来的一个字符。字符常量的表示方法有两种:普通字符和转义字符。

普通字符就是单引号将一个单字符括起来。例如:'A'、'6'、'$'、';'、 '>'、'G'、'?'等等。单引号只是一对定界符,在普通字符表示当中只能包括一个字符。

由于字符'A'的ASCII码为十进制数65,用八进制表示是0101,用十六进制表示是0x41,所以字符'\101'和'\X41'都表示字符'A'。用这种方法可以表示任何字符。例如'\141'表示字符'a'。再例如'\0'、'\000'和'\x00'都代表的是ASCII码为0的控制字符,即空字符。空字符被用来作为字符串结束的标记。

 

7.字符型数据在内存中的表示

字符型数据在内存中是以整型数据形式存储的。举例来说字符'A'在内存中占一个字节,存储的是整型数据65(字符'A'的ASCII码),也就是说字符型数据是一个字节的整数。

所有的大写英文字母的ASCII码比它们的小写形式小32,也就是说:'A'+32的值是97,也就是'a';'B'-32的值是66,也就是'b'。

字符型数据和整型数据是可以通用、可以混合运算。字符型数据可以当做整型数据来使用,整型数据也可以当做字符型数据来使用。

 

 

语句char a;的功能是定义字符型变量;

语句int n;的功能是定义整型变量。

语句scanf("%c%d",&a,&n);的功能是输入一个字符和整数,赋值给变量a和n。

其中%c是字符型格式说明符,在这里指输入一个字符。

语句printf("%d,%d\n",a,n);的功能是输出两个以逗号分隔的整数和回车。

 

8.字符串常量

字符串常量是以双引号括起来的一串字符序列。例如, "This is a c program."、"ABC"、"I LOVE C"或""(空串)等。其中双引号为字符串的定界符,不属于字符串的内容。

字符串常量在内存中的某个起始存储单元开始依次存储各个字符(实际存储的是ASCII码),并在最末字符的下一个字节位置额外存储一个空字符'\O',表示字符串结束。

所以,字符串数据在内存中存储在一块连续的地址空间中,所占内存空间长度为其实际字符个数加1。例如,字符串"CHINA"在内存中所占用的存储空间是6个字节。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2219682.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库->库的操作

目录 一、查看数据库 1.显示所有的数据库 二、创建数据库 1.创建数据库 2.查看警告信息 3.创建一个名为database的数据库 三、字符集编码和校验(排序)规则 1.查看数据库⽀持的字符集编码 2.查看数据库⽀持的排序规则 3.一条完整创建库的语句 4. 不同的字串集与排序规…

keepalived(高可用)+nginx(负载均衡)+web

环境 注意: (1) 做高可用负载均衡至少需要四台服务器:两台独立的高可用负载均衡器,两台web服务器做集群 (2) vip(虚拟ip)不能和物理ip冲突 (3) vip(虚拟ip)最好设置成和内网ip同一网段&#xf…

传感器驱动系列之PAW3212DB鼠标光电传感器

目录 一、PAW3212DB鼠标光电传感器简介 1.1 主要特点 1.2 引脚定义 1.3 传感器组装 1.4 应用场景 1.5 传感器使用注意 1.5.1 供电选择 1.5.2 SPI读写设置 1.5.3 MOTION引脚 1.6 寄存器说明 1.6.1 Product_ID1寄存器 1.6.2 MOTION_Status寄存器 1.6.3 Delta_X寄存器…

【论文笔记】X-Former: Unifying Contrastive and Reconstruction Learning for MLLMs

🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 基本信息 标题: X-Former: Unifying Contr…

为您的 WordPress 网站打造完美广告布局 A5广告单元格插件

一个为 WordPress 网站量身定制的强大工具,它将彻底改变您展示广告的方式 灵活多变的布局设计 A5 广告单元格插件的核心优势在于其无与伦比的灵活性。无论您是想要创建整齐的网格布局,还是希望打造独特的不规则设计,这款插件都能满足您的需求。 自定义网格数量:从 2…

C# 条形码、二维码标签打印程序

1、条码标答打印主界面 2、打印设置 3、生成QR代码 private void GetBarcode_T(string lr) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();//创建一个对象 qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; //设置编码测量…

Mamba学习笔记(2)—序列数据处理基础

文章目录 (1) RNN(Recurrent Neural Networks)基本原理代码定义 (2) SLTM (Long Short-Term Memory)基本原理代码定义 (3) GRU (Gated Recurrent Unit)基本原理代码定义 (4) Transformer(☆☆☆Attention Is All You Need☆☆☆)0…

量子门电路开销——T门、clifford门、toffoli门、fredkin门

在量子计算中,T门的成本比Clifford门高出很多倍的原因与量子计算中纠错的实现、物理门操作的复杂性以及容错量子计算架构中的成本评估有关。以下是几个关键原因,解释了为什么 T 门的成本在量子计算中远远高于 Clifford 门: 1. T 门和 Cliffo…

递归、搜索与回溯(二)——递归练习与快速幂

文章目录 递归、搜索与回溯——递归两两交换链表中的节点Pow(x, n) 递归、搜索与回溯——递归 该文仍然是解决递归问题,值得注意的是快速幂算法。接下来会系统学习二叉树深搜题目,慢慢走向搜索与回溯。 两两交换链表中的节点 原题链接:24. 两…

AI识谱——将乐曲转化为五线谱

导言: 会乐曲的小伙伴在听到一首好听的乐曲的时候,肯定想过将这首歌曲转换为谱子给弹出来。除了上网找乐谱、请大神帮忙扒谱或者自己扒谱外,小伙伴也可以尝试一下本文介绍的AI识谱流程,让我们开始吧! 注意了&#xf…

2024 Python3.10 系统入门+进阶(十七):面向对象基础

目录 一、面向对象概述1.1 面向对象简介1.2 对象和类1.3 定义属性和行为1.3.1 用数据描述对象的状态1.3.2 行为就是动作 1.4 隐藏细节并创建公共接口1.5 组合1.6 继承1.6.1 继承提供抽象1.6.2 多重继承 二、封装2.1 Python类定义2.2 创建类的成员2.2.1 创建实例方法并访问2.2.2…

PythonExcel批量pingIP地址

问题: 作为一个电气工程师(PLC),当设备掉线的时候,需要用ping工具来检查网线物理层是否可靠连接,当项目体量过大时,就不能一个手动输入命令了。 解决方案一: 使用CMD命令 for /L %…

机器学习在聚合物及其复合材料中的应用与实践

在当前的工业和科研领域,聚合物及其复合材料因其卓越的物理和化学性能而受到广泛关注。这些材料在航空航天、汽车制造、能源开发和生物医学等多个行业中发挥着至关重要的作用。随着材料科学的发展,传统的实验和理论分析方法已逐渐无法满足新材料研发的需…

【力扣打卡系列】滑动窗口与双指针(无重复字符的最长子串)

坚持按题型打卡&刷&梳理力扣算法题系列,语言为go,Day7 无重复字符的最长子串 题目描述解题思路 不含重复字符——》考虑使用哈希表来存储记录为了提高效率也可以用数组,hash : [128]bool{} (因为存的是字符的ASCLL码&…

【Unity踩坑】无法关闭Unity(Application.Shutdown.CleanupEngine)

安装了Unity 6正式版,在关闭Unity 项目时,会出现下面的提示,一直无法关闭。 一直显示 Application.Shutdown.CleanupEngine。 查了一下。这是一个历史性问题了,看来依然没有解决。 参考:Application.Shutdown.Cleanu…

web API基础

作用和分类 作用: 就是使用 JS 去操作 html 和浏览器 分类: DOM (文档对象模型)、 BOM (浏览器对象模型) 什么是DOM DOM (Document Object Model) 译为文档对象模型,是 HTML 和 XML 文档的编程接口。 HTML DOM 定义了访问和操作 …

权限(补充)

在上一篇Linux权限(想了解的可以点击看看哦)中已经见识了一部分权限,但是少了很重要的一部分: 那就是用户之间的转换,文件读写的关系,这里就简单的介绍一些; 我们在Linux权限知道了目录权限的关…

推荐一款多显示器管理工具:DisplayMagician

DisplayMagician是一款开源工具,专为Windows用户设计,能够通过一个快捷方式轻松自动配置屏幕和声音。它特别适合游戏玩家和应用程序用户,可以实现屏幕配置、声音设备切换以及启动额外程序等功能,最后在游戏或应用程序关闭时&#…

Qml-Item的Id生效范围

Qml-Item的Id生效范围 前置声明 本实例在Qt6.5版本中做的验证同一个qml文件中,id是唯一的,即不同有两个相同id 的Item;当前qml文件中声明的id在当前文件中有效(即如果其它组件中传入的id,与当前qml文件中id 相同,当前…

基于curl和wget命令编写的多文件或大文件批量上传下载

最近需要在windows和服务器linux系统之间传递大量的文件,部分文件非常大(TB以上),并且文件夹中包含文件或文件夹,需要先进行上传再进行组织,因此就想办法结合curl和wget命令编写了命令或脚本工具&#xff0…