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

news2024/11/23 21:12:54

目录

前言

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                  0
          1                  1
          2                  2(逢2进1 原来位置变0)-->10
          3                  11
	      4                  12(逢2进1 原来位置变0)-- >20(逢2进1 原来位置变0)-->100
          5                  101
          6                  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.coloradmin.cn/o/912037.html

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

相关文章

如何搭建智能问答FAQ的底层数据基础呢?

搭建智能问答FAQ的底层数据基础是构建一个高效和准确的问答系统的关键。在这篇文章中,我们将探讨如何搭建智能问答FAQ的底层数据基础,并介绍需要注意的几个方面。 一、了解智能问答FAQ的概念和优势 智能问答FAQ是一种基于人工智能技术的问答系统&#…

趣解设计原则之单一职责(论一个小老板的发家史)

一、前言 今天我们来聊一聊设计原则中的单一职责,还是按照惯例,先介绍一下含义,然后呢,我们再来讲一个小故事。 单一职责(SRP:Single Reposibility Principle)的定义: 一个类或者模…

static的使用

static的使用 在C语言中,static是一个关键字,用于指定变量、函数和代码块的作用域和生命周期。 用法: 静态变量 1.修饰变量:使用static关键字声明的变量是静态变量,它们的作用域被限制在定义它们的源文件中&#x…

SRE 与开发的自动化协同 -- 生产环境出现 bug 自动生成异常追踪

简介 生产环境 bug 的定义:RUM 应用和 APM 应用的 error_stack 信息被捕捉后成为 bug。 以 APM 新增错误巡检为例,当出现新错误时,在观测云控制台的「事件」模块下生成新的事件报告,捕捉为 bug。同时利用 Dataflux Func 创建异常…

一篇文章带你认识重构

文章目录 一、重构的目的:为什么要重构(why)?二、重构的对象:到底重构什么(what)?三、重构的时机:什么时候重构(when)?四、重构的方法…

Transformer在医学影像中的应用综述-分类

文章目录 COVID-19 Diagnosis黑盒模型可解释的模型 肿瘤分类黑盒模型可解释模型 视网膜疾病分类小结 总体结构 COVID-19 Diagnosis 黑盒模型 Point-of-Care Transformer(POCFormer):利用Linformer将自注意的空间和时间复杂度从二次型降低到线性型。POCFormer有200…

Unscreen-AI自动删除视频背景工具 无需绿屏

Unscreen是什么 Unscreen是一款AI自动删除视频背景工具,可以帮你把视频和GIF中的背景去除,目前支持的格式:.mp4、.webm、.ogg、.ogg、.ogv、.mov、.gif,用户不需要手动选择像素、颜色和掩码,而是使用AI 自动分析视频&…

ms-tpm-20-ref构建脚本说明

bootstrap 这个脚本主要做了以下几件事情: 1. 设置环境变量:将 AUTORECONF 环境变量设置为 autoreconf,如果该变量已经定义,则不会进行重新设置。 2. 生成文件列表:通过 src_listvar 函数生成各个目录下的源文件列表&…

易云维智慧实验室综合管理平台以技术赋能和数据驱动,助力实验室设备集中管控和能耗管理

目前,我国实验室存在纸质记录多、信息孤岛、不可追溯、安全隐患多、运行能耗高、管理难等问题;同时,国内LIMS实验室信息系统专业化程度低,功能结构单一,不能满足现阶段实验室管理需要;构建一个基于物联网技…

macOS M1使用TensorFlow GPU加速

本人是在pycharm运行代码,安装了tensorflow版本2.13.0 先运行代码查看有没有使用GPU加速: import tensorflow as tf# Press the green button in the gutter to run the script. if __name__ __main__:physical_devices tf.config.list_physical_dev…

Leetcode每日一题:849. 到最近的人的最大距离(2023.8.22 C++)

目录 849. 到最近的人的最大距离 题目描述: 实现代码与解析: 双指针 原理思路: 849. 到最近的人的最大距离 题目描述: 给你一个数组 seats 表示一排座位,其中 seats[i] 1 代表有人坐在第 i 个座位上&#xff0c…

jQuery Editable Select可搜索下拉选项框

前言 可搜索的下拉选项框 源码地址:https://github.com/indrimuska/jquery-editable-select 可搜索的下拉选项框 引入依赖 <script src"//code.jquery.com/jquery-1.12.4.min.js"></script> <script src"//rawgithub.com/indrimuska/jquery…

CentOS中Oracle11g进程有哪些

最近遇到Oracle数据库运行过程实例进程由于某种原因导致中止的问题&#xff0c;专门看了下正常Oracle数据库启动后的进程有哪些&#xff0c;查阅资料了解了下各进程的作用&#xff0c;记录如下。 oracle 3032 1 0 07:36 ? 00:00:00 ora_pmon_orcl oracle …

数据结构——线性数据结构(数组,链表,栈,队列)

文章目录 1. 数组2. 链表2.1. 链表简介2.2. 链表分类2.2.1. 单链表2.2.2. 循环链表2.2.3. 双向链表2.2.4. 双向循环链表 2.3. 应用场景2.4. 数组 vs 链表 3. 栈3.1. 栈简介3.2. 栈的常见应用常见应用场景3.2.1. 实现浏览器的回退和前进功能3.2.2. 检查符号是否成对出现3.2.3. 反…

“解放 Arweave“优惠:4EVERLAND的无缝上传教程

为了进一步展示 Arweave 的能力&#xff0c;4EVERLAND 骄傲地推出了“解放 Arweave”活动。我们认识到 Arweave 在数据完整性、抗审查性以及长期保存方面的无与伦比的优势&#xff0c;因此我们与这个去中心化的存储巨头建立了强大的集成。 克服了过去与加密货币支付逻辑相关的…

2023网络建设与运维模块三:服务搭建与运维

任务描述: 随着信息技术的快速发展,集团计划2023年把部分业务由原有的X86架构服务器上迁移到ARM架构服务器上,同时根据目前的部分业务需求进行了部分调整和优化。 一、X86架构计算机操作系统安装与管理 1.PC1系统为ubuntu-desktop-amd64系统(已安装,语言为英文),登录用户…

半导体市场遇寒冬,“热停机”成为新趋势 | 百能云芯

半导体制程市况不佳&#xff0c;晶圆代工商降价效果差。为削减成本&#xff0c;韩国主要代工厂如三星&#xff0c;启用“热停机”策略。此趋势蔓延至联电、世界先进、力积电等台湾代工厂&#xff0c;揭示短期订单前景黯淡&#xff0c;制程市况严峻。 据韩媒&#xff0c;三星、K…

console的几个常用用法

console.log() 其一、主要表示&#xff1a;向 Web 控制台输出一条消息; 其二、而具体是什么信息就以传递的实参为准&#xff0c;然后就是在控制台就能显示自己传递参数的结果&#xff1b; console.log([1,3,5,7]) // 输出 [1, 3, 5, 7] console.log({}) // 输出 {} conso…

*看门狗原理及注意事项

1.看门狗的作用是&#xff1a;当单片机因为软硬件问题或者外界干扰导致死机时&#xff0c;可以自动复位单片机&#xff0c;使系统重新正常工作。 当电脑的系统死机了&#xff0c;我们可以人为手动的进行重启&#xff0c;使电脑重新正常工作。但当火星的单片机系统死机了&#x…

无人机电力巡检:探索电力设施维护的新模式

电力巡检一直是电力行业中关键的环节&#xff0c;它的目的是确保电力设施的正常运行和安全稳定&#xff0c;对提高电力设施的可靠性、确保电力供应的稳定性和提高电力企业的管理水平具有重要的意义。传统的电力巡检方式通常采用人工的方式进行&#xff0c;这种方式存在很多的问…