1.1什么是编程语言 课件(共25张PPT)-《C语言程序设计》同步教学(西安电子科技大学出版社)

资源下载
  1. 二一教育资源

1.1什么是编程语言 课件(共25张PPT)-《C语言程序设计》同步教学(西安电子科技大学出版社)

资源简介

(共25张PPT)
C 语言程序设计
2023
翻转课堂实用教程
第1章
什么是编程语言
1.1
二进制、八进制和十六进制
1.2
数据在内存中怎样存储
1.3
计算机的编码问题
1.4
数据、内存和程序的关系
1.5
1.1 什么是编程语言
人与计算机怎样交流?
人与人之间通过“自然语言”交流
人与计算机之间怎么交流?
编程
语言
常用编程语言及主要用途
编程语言 主要用途
C/C++ C/C++主要用于PC软件开发、Linux开发、游戏开发、单片机和嵌入式系统
Java 用于网站后台开发、Android 开发、PC软件开发,近年来又涉足了大数据领域(归功于 Hadoop 框架的流行)
C# 用于 Windows 平台的软件开发,以及少量的网站后台开发。
Python 用于系统运维、网站后台开发、数据分析、人工智能、云计算等领域
PHP PHP 主要用来开发网站后台程序。
JavaScript 最初只能用于网站前端开发,近年来由于 Node.js 的流行,JavaScript 在网站后台开发中也占有了一席之地
Go语言 主要用于服务器端的编程,对 C/C++、Java 都形成了不小的挑战。
Objective-C和Swift Objective-C 和 Swift 都只能用于苹果产品的开发,包括 Mac、MacBook、iPhone、iPad、iWatch 等
汇编语言 在对效率和实时性要求极高的关键模块才会考虑汇编语言,例如操作系统内核、驱动、仪器仪表、工业控制等
C语言什么样子?
1
C语言的格式和词汇(语法、语义)
养成编程思维
2
例子1-1-1,代码如下:
/*在屏幕上显示“我爱编程”*/
#include
int main()
{ printf(“我爱编程\n”);
return 0;
}
例子1-1-1,运行结果:
我爱编程
1.2 二进制、八进制和十六进制
八进制数
一位八进制数可以表示三位二进制数
23=8
一位十六进制数可以表示四位二进制数
24=16
十六进制
为什么使用八进制和十六进制?
二进制数 1111 1111 1111 1111
十六进制 FFFF
二进制数 001 111 111 111 111 111
八进制 177777
方便、简单
1.2.1 二进制
PK
逢2进1
二进制加法
借1当2
二进制减法
0
1
1
11
0
0

-
=
0
1
1

-
=
1
1
0
11
0
0
1
0
1

-
=
0
1
1

-
=
01
1
0
11
1
1
11
0
0
0-1不够减,向高位借1,当作2使用,2-1为1
被低位借走1后,当前位就不够减了,还得再向高位借1,当作2使用,1+2-1-1为1
被低位借走1后,当前位剩下0,0-0为0
当前位本来就不够减,还被低位借走1,所以得向高位借1,借到之后当作2使用,2-1-1为0
1.2.2 八进制
PK
逢8进1
八进制加法
借1当8
八进制减法
1.2.3 十六进制
PK
逢16进1
十六进制加法
借1当16
十六进制减法
1.3 数据在内存中怎样存储
位和字节
8个元器件看做一个单位,例如 1,用 00000001表示1个元器件称为1比特(Bit)或1位
8个元器件称为1字节(Byte)
单位换算:1Byte = 8 Bit
8×1024个元器件就是1024Byte,简写为1KB
1KB = 1024Byte =210Byte 1MB = 1024KB =220Byte
1GB = 1024MB =230Byte 1TB = 1024GB =240Byte
1PB = 1024TB =250Byte 1EB = 1024PB =260Byte
存储单位
数据的存储
一个元器件有2种状态,0 或者 1
内存条是一个非常精密的部件,包含了上亿个电子元器件
8个元器件有 28=256 种不同的组合
16个元器件有 216=65536 种不同的组合
1.4 数据、内存和程序的关系
数据和内存的关系
从硬盘->内存
由CPU处理
数据调用过程
存在内存,断电消失
存在硬盘,永久保存
数据存储
想一下打开word应用程序之后,数据的调用和存储是怎样的?
C语言什么样子?
1
C语言的格式和词汇(语法、语义)
养成编程思维
2
例子1-1-1,代码如下:
/*在屏幕上显示“我爱编程”*/
#include
int main()
{ printf(“我爱编程\n”);
return 0;
}
例子1-1-1,运行结果:
我爱编程
什么是虚拟内存?
如果内存小,一部分数据就要放回硬盘,用时在调入内存
硬盘的读写速度比内存慢很多,反复交换数据会消耗很多时间
虚拟内存
买大内存,一般4G以上
1.5 计算机的编码问题
1.5.1 ASCII编码-
英文的字符集
怎样将文字与二进制对应起来呢?
字符集(Character Set)或者字符编码(Character Encoding)
字符集为每个字符分配一个唯一的编号,类似于学生的学号,通过编号就能够找到对应的字符。
ASCII 是“American Standard Code for Information Interchange”的缩写,中文是“美国信息交换标准代码”
1.5.2 GB2312编码
和GBK编码
对于中国的字符,使用两个字节存储,并且规定每个字节的最高位都是 1
1、 GB2312 和 GBK 的编码
中文版 Windows 都将 GBK 作为默认的中文编码方案
2、GBK 编码
为了容纳更多的字符,并且要区分两个字节和四个字节
3、 GB18030编码
GB2312 --> GBK --> GB18030 是中文编码的三套方案
例如:字母和汉字在内存中存储的区别
(1)对于字母A,它在内存中存储为 01000001;
(2)对于汉字中,它在内存中存储为 11010110 11010000。
用记事本程序创建一个 txt 文档、在 cmd 或者控制台程序(最常见的C语言程序)中显示汉字、用 Visual Studio 创建的源文件等,使用的都是 GBK 编码。
例如:
对于常用的中文字符,使用两个字节存储,并且规定第一个字节的最高位是 1,第二个字节的高位最多只能有一个连续的 0(第二个字节的最高位可以是 1 也可以是 0,但是当它是 0 时,次高位就不能是 0 了)
对于罕见的字符,使用四个字节存储,并且规定第一个和第三个字节的最高位是 1,第二个和第四个字节的高位必须有两个连续的 0。
3、 GB18030编码
例如字母A的藏文存储
对于藏文,A在内存中的存储为 10000001 00110010 11101111 00110000
怎么判断占用了几个字节呢?
字符处理软件在处理文本时,从左往右依次扫描每个字节:
如果遇到的字节的最高位是 0,那么就会断定该字符只占用了一个字节;
如果遇到的字节的最高位是 1,那么该字符可能占用了两个字节,也可能占用了四个字节,所以还要继续往后扫描才能确定;
如果第二个字节的高位有两个连续的 0,那么就会断定该字符占用了四个字节;
如果第二个字节的高位没有连续的 0,那么就会断定该字符占用了两个字节。
当字符占用两个或者四个字节时,GB18030 编码要检测两次,处理效率比 GB2312 和 GBK 都低
1.5.3 Unicode字符集
一种变长的编码方案,使用 1~6 个字节来存储
1、 UTF-8
一种固定长度的编码方案,不管字符编号大小,始终使用 4 个字节来存储
2、UTF-32
介于 UTF-8 和 UTF-32 之间,使用 2 个或者 4 个字节来存储,长度既固定又可变
3、 UTF-16
Unicode 也称为统一码、万国码,是能统一所有国家的字符编码,定义了全球文字的唯一编号。
需要 UTF-8、UTF-16、UTF-32 这几种编码方案将 Unicode 存储到计算机中
UTF 是 Unicode Transformation Format 的缩写,意思是“Unicode转换格式”
1. UTF-8 的编码规则是:
(1)如果只有一个字节,那么最高的比特位为 0,这样可以兼容 ASCII;
(2)如果有多个字节,那么第一个字节从最高位开始,连续有几个比特位的值为 1,就使用几个字节编码,剩下的字节均以 10 开头。
具体的表现形式为:
(1)0xxxxxxx:单字节编码形式,这和 ASCII 编码完全一样,因此 UTF-8 是兼容 ASCII 的;
(2)110xxxxx 10xxxxxx:双字节编码形式(第一个字节有两个连续的 1);
(3)1110xxxx 10xxxxxx 10xxxxxx:三字节编码形式(第一个字节有三个连续的 1);
(4)11110xxx 10xxxxxx 10xxxxxx 10xxxxxx:四字节编码形式(第一个字节有四个连续的 1)。
xxx 就用来存储 Unicode 中的字符编号
1.5.3 Unicode字符集
2. UTF-32
UTF-32 是固定长度的编码,始终占用 4 个字节,足以容纳所有的 Unicode 字符,所以直接存储 Unicode 编号即可,不需要任何编码转换。浪费了空间,提高了效率。
3.UTF-16
UFT-16使用 2 个或者 4 个字节来存储。对于 Unicode 编号范围在 0 ~ FFFF 之间的字符,UTF-16 使用两个字节存储,并且直接存储 Unicode 编号,不用进行编码转换。
对于 Unicode 编号范围在 10000~10FFFF 之间的字符,UTF-16 使用四个字节存储,具体来说就是:将字符编号的所有比特位分成两部分,较高的一些比特位用一个值介于 D800~DBFF 之间的双字节存储,较低的一些比特位(剩下的比特位)用一个值介于 DC00~DFFF 之间的双字节存储。
4. Unicode编码方案的比较
只有 UTF-8 兼容 ASCII,UTF-32 和 UTF-16 都不兼容 ASCII
(1) 优点:UTF-8 使用尽量少的字节来存储字符,节省存储空间,省流量。
缺点:效率低,不但在存储和读取时都要经过转换,而且在处理字符串时也非常麻烦。
字符定位
(2)优点:UTF-32 效率高
缺点:占用存储空间,网络传输时消耗流量多
(3)优点: UTF-16平衡了存储空间和处理效率的矛盾
启示:从Unicode字符集想到的
(1)无论国家还是个人只有遵守统一的规则,才能有序地交流和发展;
(2)做事情都要在遵守基本规则的基础上,进行创新和发展;
(3)字符编码是非常严谨的工作,一点差错会导致严重的后果,因此,我们做事要具有工匠精神,精益求精。
1.5.4 课堂练习题
已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是______。
字符A B) 字符a C) 字符e D) 非法的常量
2. 设有说明语句:char a='\72';则变量a
A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法
【微视频】进制转换及字符编码
谢谢观看

展开更多......

收起↑

资源预览