《C语言程序设计》课件 1 编程相关基础知识_第1页
《C语言程序设计》课件 1 编程相关基础知识_第2页
《C语言程序设计》课件 1 编程相关基础知识_第3页
《C语言程序设计》课件 1 编程相关基础知识_第4页
《C语言程序设计》课件 1 编程相关基础知识_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计基础——C语言程序设计

2023翻转课堂实用教程第1章什么是编程语言1.1二进制、八进制和十六进制1.2数据在内存中怎样存储1.3计算机的编码问题1.4数据、内存和程序的关系1.51.1什么是编程语言人与计算机怎样交流?人与人之间通过“自然语言”交流人与计算机之间怎么交流?编程语言常用编程语言及主要用途编程语言主要用途C/C++C/C++主要用于PC软件开发、Linux开发、游戏开发、单片机和嵌入式系统Java用于网站后台开发、Android

开发、PC软件开发,近年来又涉足了大数据领域(归功于Hadoop框架的流行)C#用于Windows平台的软件开发,以及少量的网站后台开发。Python用于系统运维、网站后台开发、数据分析、人工智能、云计算等领域PHPPHP主要用来开发网站后台程序。JavaScript最初只能用于网站前端开发,近年来由于Node.js的流行,JavaScript在网站后台开发中也占有了一席之地Go语言主要用于服务器端的编程,对C/C++、Java都形成了不小的挑战。Objective-C和SwiftObjective-C和Swift都只能用于苹果产品的开发,包括Mac、MacBook、iPhone、iPad、iWatch等汇编语言在对效率和实时性要求极高的关键模块才会考虑汇编语言,例如操作系统内核、驱动、仪器仪表、工业控制等C语言什么样子?1C语言的格式和词汇(语法、语义)养成编程思维2例子1-1-1,代码如下:/*在屏幕上显示“我爱编程”*/#include<stdio.h>intmain(){printf(“我爱编程\n”);return0;}例子1-1-1,运行结果:我爱编程1.2二进制、八进制和十六进制八进制数一位八进制数可以表示三位二进制数23=8一位十六进制数可以表示四位二进制数24=16十六进制为什么使用八进制和十六进制?方便、简单二进制数001111111111111111八进制177777二进制数1111111111111111十六进制FFFF1.2.1二进制PK逢2进1二进制加法借1当2二进制减法0111100

-=011

-=1101100101

-=011

-=0110111111000-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为01.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=8Bit8×1024个元器件就是1024Byte,简写为1KB1KB=1024Byte=210Byte1MB=1024KB=220Byte1GB=1024MB=230Byte1TB=1024GB=240Byte1PB=1024TB=250Byte1EB=1024PB=260Byte22=4,23=8,24=16,25=32,26=64,27=128,28=256存储单位数据的存储一个元器件有2种状态,0或者1内存条是一个非常精密的部件,包含了上亿个电子元器件8个元器件有28=256种不同的组合16个元器件有216=65536种不同的组合1.4数据、内存和程序的关系数据和内存的关系从硬盘->内存由CPU处理数据调用过程存在内存,断电消失存在硬盘,永久保存数据存储想一下打开word应用程序之后,数据的调用和存储是怎样的?什么是虚拟内存?如果内存小,一部分数据就要放回硬盘,用时在调入内存硬盘的读写速度比内存慢很多,反复交换数据会消耗很多时间虚拟内存买大内存,一般4G以上1.5计算机的编码问题1.5.1ASCII编码-英文的字符集怎样将文字与二进制对应起来呢?字符集(CharacterSet)或者字符编码(CharacterEncoding)字符集为每个字符分配一个唯一的编号,类似于学生的学号,通过编号就能够找到对应的字符。ASCII是“AmericanStandardCodeforInformationInterchange”的缩写,中文是“美国信息交换标准代码”1.5.2GB2312编码和GBK编码对于中国的字符,使用两个字节存储,并且规定每个字节的最高位都是11、GB2312和GBK的编码中文版Windows都将GBK作为默认的中文编码方案2、GBK编码为了容纳更多的字符,并且要区分两个字节和四个字节3、GB18030编码GB2312-->GBK-->GB18030是中文编码的三套方案例如:字母和汉字在内存中存储的区别(1)对于字母A,它在内存中存储为

01000001;(2)对于汉字中,它在内存中存储为

11010110

11010000。用记事本程序创建一个txt文档、在cmd或者控制台程序(最常见的C语言程序)中显示汉字、用VisualStudio创建的源文件等,使用的都是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.3Unicode字符集一种变长的编码方案,使用1~6个字节来存储1、UTF-8一种固定长度的编码方案,不管字符编号大小,始终使用4个字节来存储2、UTF-32介于UTF-8和UTF-32之间,使用2个或者4个字节来存储,长度既固定又可变3、UTF-16Unicode也称为统一码、万国码,是能统一所有国家的字符编码,定义了全球文字的唯一编号。需要UTF-8、UTF-16、UTF-32这几种编码方案将Unicode存储到计算机中UTF是UnicodeTransformationFormat的缩写,意思是“Unicode转换格式”1.UTF-8的编码规则是:(1)如果只有一个字节,那么最高的比特位为0,这样可以兼容ASCII;(2)如果有多个字节,那么第一个字节从最高位开始,连续有几个比特位的值为1,就使用几个字节编码,剩下的字节均以10开头。具体的表现形式为:(1)0xxxxxxx:单字节编码形式,这和ASCII编码完全一样,因此UTF-8是兼容ASCII的;(2)110xxxxx10xxxxxx:双字节编码形式(第一个字节有两个连续的1);(3)1110xxxx10xxxxxx10xxxxxx:三字节编码形式(第一个字节有三个连续的1);(4)11110xxx10xxxxxx10xxxxxx10xxxxxx:四字节编码形式(第一个字节有四个连续的1)。xxx就用来存储Unicode中的字符编号1.5.3Unicode字符集2.UTF-32UTF-32是固定长度的编码,始终占用4个字节,足以容纳所有的Unicode字符,所以直接存储Unicode编号即可,不需要任何编码转换。浪费了空间,提高了效率。3.UTF-16UFT-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.设有说明语句:chara='\72';则变量a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论