C语言入门 Day_8数据与运算小结

目录

前言

1.精度

2.运算

2.易错点

3.思维导图


前言

 到目前为止我们一共学习了四种数据类型,他们分别是表示整数的整型;表示小数的浮点型;表示字符的字符型;和表示布尔数的布尔型

表示整数的整型,它的变量类型名称是int,是英文整数integer的简写,在输出中使用%d来表示,是英文十进制(decimal)的简写。

int number_a=2023;
printf("%d\n",number_a);

表示小数的浮点型,它的变量类型名称是float,就是浮点的英文,在输出中使用%f来表示,是float的首字母简写。

float number_b=3.14;
printf("%d\n",number_b);

表示字符的字符型,它的变量类型名称是char,是英文character的简写,在输出中使用%c来表示,也是首字母简写。

char char_a='A';
printf("%c",char_a);

还有一种C语言发展晚期才出现的数据类型类型,代表布尔数的布尔型,布尔数里面,零就是假(false),非零就是真(true),因此在输出的时候仍然使用%d来表示。

bool bool_a=true;
printf("%d\n",bool_a);

printf("%d\n",2023);
printf("%f\n",3.14);
printf("%c\n",'A');
printf("%d\n",true);

1.打印一个整型常量

2.打印一个浮点型常量,这里会输出3.140000

3.打印一个字符型常量

4.打印一个布尔型常量

之前我们提到,这些数据类型都是有范围的,比如整型int是负三万到正三万,浮点型float是整数部分+小数部分只能有7位数字。那如果我们需要计算的数字超过了这个范围呢?接下来我们就要学习精度的概念。

1.精度

1.1十进制与二进制的转换 

例如     十进制              二进制0                  01                  12                  2(逢2进1 原来位置变0)-->103                  114                  12(逢2进1 原来位置变0)-- >20(逢2进1 原来位置变0)-->1005                  1016                  102(逢2进1 原来位置变0)-- >110 ……                ……​

你应该听过“二进制”这个词,这个词的意思就和逢10进1位的十进制类似,它是逢2进1位,所以二进制里面的0就是0,1就是1。2的时候就需要进位了,是10;同理3是11,4是100,以此类推。

1.2

二进制为什么在计算机世界里面广泛应用呢?这是因为计算机又叫电子计算机,它的底层原理是基于电路的两种状态,有电流和没有电流,分别可以对应二进制里面的1和0,所以用二进制可以很好的跟电路的物理状态结合起来

1.3

 那为什么十进制在人类社会中更加广泛使用呢?

科学家们普遍相信,这跟人类有十根手指有很大的关系,因为早期人类可能习惯用手指计数,所以十进制就这样慢慢的普及和传播开来了。

1.3

比特是一个计算机术语,英文是bit,中文是比特或者位,是一个二进制的信息单位,比如二进制中的10(十进制2)就有两个bit,或者两位;同理,二进制中的100(十进制4)就有三个bit,或者三位。

数字货币的始祖比特币的名字来源也是这么来的。

1.4

 字节也是一个计算机术语,每八个比特组成了一个字节,它的英文是byte,因此它也是一种二进制的信息单位,事实上我们日常经常接触到字节,比如手机内存1GB,这里的B就是byte的缩写。1GB是多少个字节呢,1KB1024个字节1MB1024个KB1GB1024个MB,所以1GB1024*1024*1024个Byte😁

1KB是1024个字节,
1MB是1024个KB,
1GB是1024个MB,
所以1GB是1024*1024*1024个Byte😁

还有一家很有名的公司叫字节跳动(抖音的母公司),据说这是因为字节跳动的创始人张一鸣认为,“物理世界的所有信息都可以在网络变成跳动的字节”,因此有了这个属于理工男的浪漫名字

介绍了这么多关于比特(bit)字节(byte)的背景知识,是因为他们和C语言中的数据类型精度密不可分的关系。

 1.5

a.这张图里面是不同类型的char和int的范围。

     b.这张图里面是不同类型的float的范围。

 一个字节8个bit,如果默认是正数的话,它就可以表示256个数,2的8次方,所以它的精度范围就是0~255,以此类推。

 

1.6

 

在实际应用中我们不需要这么精准的去计算,大致原则是,如果精度范围不够,我们就使用加强版类型

比如有的int只有2个字节(16位系统),只能表示-32768到+32767,我们需要使用更大精度的数据的时候,使用long int(4个字节),这时候范围就是-2147483648~+2147483647

如果还有比2100万更大的数字,我们就使用long long int(8个字节),表示的范围是-9223372036854775808~+9223372036854775807

1.7

 

 

这是针对早期计算机,实际上现在的计算机早已发展到64位了,我们在编程中的int类型也早就发展到4个字节,而long int更是发展到了8个字节,大部分数据运算都在这个范围内了

浮点数float也类似,它只有四个字节,因此只能表示7位有效数字(6位小数),如果我们需要位数更多的小数,我们就可以直接使用double,它有8个字节。

关于精度范围你需要记住两个点,第一个是每种类型有自己的精度范围,超出了这个精度范围程序会报错;第二个是,如果有可能进行大数字的运算,我们需要使用long int double浮点数。

1.8

我们有个办法来查看运行代码的电脑上的数据类型长度,使用sizeof()

printf("%d\n",sizeof(int));
printf("%d\n",sizeof(float));
printf("%d\n",sizeof(char));
printf("%d\n",sizeof(long int));
printf("%d\n",sizeof(double));

1.一个int的长度,4字节

2.一个float的长度,4字节

3.一个char的长度,1字节

4.一个long int的长度,8字节

5.一个double的长度,8字节

2.运算

2.1 关于运算我们一共学习了三种,算术运算,比较运算,逻辑运算。

我们首先学习了算术运算,包括加减乘除的四则运算,以及取余,自增,自减主要特点是乘号和除号和数学中不一样。

1+3;
7-3;
5*7;
15.0/3.0;
10%3;
i++;
i--;

2.2

a.接下来是6种比较运算。

b.和三种逻辑运算。

c.比较运算和逻辑运算都会得到一个布尔型(bool)

      布尔型只有两个值:

      true()——C语言中等价为1;

      false()——C语言中等价为0。

最后是关于这些运算的优先级,我们只需要记住三点:

1,默认从左到右;2,高优先级的先算;3,建议多加括号以便让代码更清晰。

2.3

表达式是一个C语言教科书中会教到的概念,一个表达式由两部分构成:

1、数据(变量/常量);2、运算符。

number_a=mumber_a+10;
number_a=4.0-1.0;
bool_b=true&&false;
bool_c=true||false;

运算符包括了我们上面学到的所有算术运算,比较运算,逻辑运算,赋值等等的符号。表达式和运算符是一个概念性的专业术语,实际编程中用到的比较少,但是教科书上面会讲, 因此我们也简单介绍一下,让我们看到的时候也不会觉得陌生😁。

3..易错点

二进制转十进制的计算过程。

二进制转十进制的计算过程。

4.思维导图

在撰写这篇文章时,我参考了《白纸编程》这个app的观点和思想,我要感谢他们对我的启发和帮助。

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

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

相关文章

浅谈泛在电力物联网在电力设备状态在线监测中的应用

安科瑞 华楠 摘要:随着信息化水平的不断发展,泛在电力物联网的建设提上日程,这对提升变电站电力设备在线监测水平,推动智能电网发展具有重要的指导意义。对基于物联网的电力设备状态监测系统进行了研究,概括了泛在电力…

Android TV开发之VerticalGridView

Android TV应用开发和手机应用开发是一样的,只是多了焦点控制,即选中变色。 androidx.leanback.widget.VerticalGridView 继承 BaseGridView , BaseGridView 继承 RecyclerView 。 所以 VerticalGridView 就是 RecyclerView ,使…

Redis高可用:哨兵机制(Redis Sentinel)详解

目录 1.什么是哨兵机制(Redis Sentinel) 2.哨兵机制基本流程 3.哨兵获取主从服务器信息 4.多个哨兵进行通信 5.主观下线和客观下线 6.哨兵集群的选举 7.新主库的选出 8.故障的转移 9.基于pub/sub机制的客户端事件通知 1.什么是哨兵机制&#xf…

重生之我要学C++第六天(const,static,友元)

这篇文章的主要内容是const以及权限问题、static关键字、友元函数和友元类,希望对大家有所帮助,点赞收藏评论支持一下吧! 更多优质内容跳转: 专栏:重生之C启程(文章平均质量分93) 目录 const以及权限问题 1.const修饰…

【计算机网络】【常考问题总结】

1. ping 127.0.0.1 后会发生什么? ping 127.0.0.1 ;ping 0.0.0.0 ; ping localhost 面试官问:断网了,还能ping通 127.0.0.1 吗?为什么?_kevin_tech的博客-CSDN博客 2. MTU,MMU是…

新书上市----Pytest企业级应用实战 新书上市

【原文链接】新书上市----Pytest企业级应用实战 新书上市 《Pytest企业级应用实战》 京东购书链接 当当购书链接 天猫购书链接 作者简介 本书作者本硕毕业于哈尔滨工业大学,曾先后就职于中兴通讯和华为,现任职于中科南京软件技术研究院,…

(三)行为型模式:3、解释器模式(Interpreter Pattern)(C++示例)

目录 1、解释器模式(Interpreter Pattern)含义 2、解释器模式的UML图学习 3、解释器模式的应用场景 4、解释器模式的优缺点 5、C实现解释器模式的实例 1、解释器模式(Interpreter Pattern)含义 解释器模式(Interp…

python分析实战(4)--获取某音热榜

1. 分析需求 打开某音热搜,选择需要获取的热榜如图 查找包含热搜内容的接口返回如图 将url地址保存 2. 开发 定义请求头 headers {Cookie: 自己的cookie,Accept: application/json, text/plain, */*,Accept-Encoding: gzip, deflate,Host: www.douyin.com,…

陕西科技大学改考408!附考情分析

改考信息 8月14日,陕西科技大学公布了2024年硕士研究生招生目录(初稿),其中不难发现083500软件工程初试专业课由819数据结构改为408计算机学科专业基础 图片:陕西科技大学24专业目录-软件工程学硕 https://yjszs.sus…

优化指南:带宽限制的可行策略

大家好!作为一名专业的爬虫程序员,我们经常面临的一个挑战就是带宽限制。尤其是在需要快速采集大量数据时,带宽限制成为了我们提升爬虫速度的一大阻碍。今天,我将和大家分享一些解决带宽限制的可行策略,希望能帮助大家…

[C++ 网络协议编程] 域名及网络地址

1. DNS服务器 DNS(Domain Name System):是对IP地址和域名(如:www.baidu.com等)进行相互转换的系统,其核心是DNS服务器。 我们输入的www.baidu.com是域名,是一种虚拟地址,而非实际地…

C# API 文档注释规范

C# API 文档注释规范 1. 命名空间注释(namespace)2. summary3. remarks and para4. param5. returns6. example and code7. exception8. typeparam 最近在开发工作中需要实现 API 帮助文档,如果根据所写的代码直接重写 API 帮助文档将会是意见非常大的工作量&#x…

新版本Qt Creator无法提示错误、不报红

问题 更新新版本Qt Creator后无法实时提示错误,在开发中非常难受 如图,此时w后面少了;Qt Creator却只有红色横线标识,没有具体的错误。 解决方法 首先要知道,提供这个错误显示功能是ClangCodeModel插件提供的,因此…

ModaHub魔搭社区:AI Agent在操作系统场景下的AgentBench基准测试

近日,来自清华大学、俄亥俄州立大学和加州大学伯克利分校的研究者设计了一个测试工具——AgentBench,用于评估LLM在多维度开放式生成环境中的推理能力和决策能力。研究者对25个LLM进行了全面评估,包括基于API的商业模型和开源模型。 他们发现,顶级商业LLM在复杂环境中表现出…

外网连接局域网的几种方式?快解析内网穿透安全便利吗?

外网连接局域网是一项网络连接中的关键技术,它能够让远程用户通过互联网访问内部局域网中的资源和服务。外网连接局域网为企业提供了更大的灵活性和便捷性,但也需要严格的安全措施来防止未经授权的访问。 外网连接局域网的几种方式 在将外网连接到局域…

Ubuntu发布java版本

1、连接服务器 2、进入目录 cd /usr/safety/app/3、上传jar文件 4、杀掉原java进程 1. 查看当前java进程 2. ps -ef|grep java 3. ycmachine:/usr/safety/app$ ps -ef|grep java root 430007 1 6 01:11 pts/0 00:02:45 /usr/local/java/jdk1.8.0_341/bin/j…

ChatGLM2-6B、ChatGLM-6B 模型介绍及训练自己数据集实战

介绍 ChatGLM-6B是开源的文本生成式对话模型,基于General Language Model(GLM)框架,具有62亿参数,结合模型蒸馏技术,实测在2080ti显卡训练中上(INT4)显存占用6G左右, 优点:1.较低的部署门槛: FP16 半精度下,ChatGLM-6B 需要至少 13GB 的显存进行推理&a…

ARM M33架构入门

概述 Arm Cortex-M33核心处理器专为需要高效安全或数字信号控制的物联网和嵌入式应用而设计。该处理器具有许多可选功能,包括数字信号处理扩展 (DSP)、用于硬件强制隔离的TrustZone 安全性、内存保护单元 (MPU)和浮点单元 (FPU)。 Cortex-M33 的性能比 Cortex-M…

I2S/PCM board-level 约束及同步(latencyskewbitsync)

I2S/PCM是典型的低速串口,在两个方向上分别有两组信号,我们已soc为视角分为soc-adif和外设audio-codec。 那么adif输入: sclk_i, ws_i, sdi 当然并不是三个输入信号同时有效,只有adif RX slave时,三个输入都会有效…

Python爬虫(十四)_BeautifulSoup4 解析器

CSS选择器:BeautifulSoup4 和lxml一样,Beautiful Soup也是一个HTML/XML的解析器,主要的功能也是如何解析和提取HTML/XML数据。 lxml只会局部遍历,而Beautiful Soup是基于HTML DOM的,会载入整个文档,解析整…