第1章 绪论
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二进制 十六进制 十进制 0000,0000 ~ 1111,1111 00 ~ FF 0 ~ 255
10
二进制大数计量单位
就像国人用个、十、百、千、万、亿 来表示 不同数量级的十进制数一样,人们以千字 节(KB)、兆字节(MB)、千兆字节(GB)和 兆兆字节(TB)为单位来表示数量级很大的 二进制数:
高位
二进制数(以111010为例)转换为十进制数:
(111010)2 = 1×25+1×24+1×23+0×22+1×21+0×20 = 58
八进制和十六进制
二进制是为计算机设计的,为了便于人们 阅读和记忆,人们试图用一个数码来表示 4位二进制所能代表的16个数, 这便构成了 十六进制。以下是三种进制的对应关系:
18
图像编码
一幅数码图像用m×n个点的点阵来表示。 每个点用一定数目的二进制位组合表示不同 的颜色。用数码相机拍照时,实物被记录为 不同颜色点的点阵,并按一定的顺序扫描为 二进制数码序列,以图像文件的形式保存在 存储卡中(保存前一般需要压缩)。当用图像 处理软件打开图像文件时,图像又以相同的 序列加载到显示卡的内存,并被显示器回放 出来。显然显存越大、显示器的密度越高, 颜色就越逼真,动画的切换也就越快。
1.2.2 计算机硬件
计算机硬件由运算器、控制器、存储器、 输入设备和输出设备五大基本部件组成:
中央处理器 主机 硬件系统 外设 运算器 控制器
内存储器
外存储器 输入设备 输出设备
硬件的指标主要有字长、速度和存储容量, 目前我们所用机器的字长为32bit。
1.2.3 计算机软件
计算机软件由商业化程序的组合及相关的 数据、文档组成。每个软件都有其特定的 功能,并经过精心的设计和严格的测试, 故其开发需要相当大的人力和物力投入, 软件也因此具有一定的商业价值,受到了 著作权的保护。 软件可按照其运行的层次分为底层或系统 软件(如操作系统)及应用软件,后者可 按照功能进一步分类。
13
正整数编码—原码
正整数的二进制编码就是二进制数所代表 数量的本身。例如:
(0111)2 = 7h = 7 ( 4 bit) (0111,1111)2 = 7Fh = 127 ( 8 bit = 1 byte) (0111,1111,1111,1111)2 = 7FFFh = 32767 (16 bit = 2 bytes) (0111,1111,1111,1111 ,1111,1111,1111,1111)= 7FFF,FFFFh = 2,147,483,647(32 bit = 4 bytes)
Bin 0000 0001 0010 0011 0100 0101 0110 0111 Dec 0 1 2 3 4 5 6 7 Hex 0 1 2 3 4 5 6 7 Bin 1000 1001 1010 1011 1100 1101 1110 1111 Dec 8 9 10 11 12 13 14 15 Hex 8 9 A B C D E F
1千字节= 1024字节 (1KB = 1024 byte) 1兆字节= 1024千字节 (1MB = 1024 KB) 1千兆字节= 1024兆字节 (1GB = 1024 MB) 1兆兆字节= 1024千兆字节 (1TB = 1024 GB)
11
1.1.2 信息编码
什么是信息编码 正整数编码—原码 负整数编码—补码 实数编码—浮点码 字符编码 声音编码 图像编码
程序设计语言
程序是人Biblioteka Baidu为计算机设计出的解题步骤, 必须让计算机理解才能够在机器上执行。 为此,人类设计出若干面向人类、符合某 种语法规则的程序设计语言,并针对每种 语言开发一个“编译系统”,后者将用该 语言写成的程序翻译为计算机直接理解的 指令(机器语言),再放到计算机上执行。 我们称面向人类的计算机语言为高级语言; 面向机器的计算机语言为低级语言。
关于C语言
作为一种面向人类的高级语言,C语言具有 其它高级语言所不具备的一些特点:
由于C语言最初是为编写底层软件UNIX操作系统 而设计的,因此它兼顾了低级语言的某些特性, 其中用于访问内存的指针是其它语言不具备的。 C语言语法简捷、运算符丰富、可移植性好、生 成目标代码的质量高,这些是它的另一些特点。
12
什么是信息编码
就像一个给定位数的十进制数 (例如2118) 既可以表示数量 (两千一百一十八),也可以 表示车次、房号、学号等等,一个一定位数 的二进制数也可以用来表示不同的信息。 既然所有信息在计算机内部都是以二进制表 示的,因此数据、文字、声音、图象等各种 信息到了计算机中,都将被转换为一定位数 的二进制数码的组合。以给定位数的二进制 数码组合表示某种信息的方法,就称为这种 信息的二进制编码(binary coding)。
程序设计
程序设计(programming)是指运用某种程序 设计语言编写程序的过程,即设计并描述 出让计算机完成某项运算的一系列步骤的 过程,该过程一般分为两个阶段: ①设计阶段——分析待解决的问题、给出 一般性解决方案(算法),并进行初步验证。 ②实现阶段——对解决方案具体化,即用 程序设计语言描述出解决该问题的步骤, 并通过在计算机上编译、执行来实际验证。
9
二进制基本计量单位
在计算机领域,有两个与二进制有关的基 本数据计量单位:比特和字节。
一个二进制位称为一个比特 (bit),它是二进制的 最小计量单位,只能表示0和1这两个数。 八个二进制位(即两个十六进制位)称为一个字 节(byte),它是计算机存取数据的最小单位,一个 字节所能表示数的范围为:
即四位二进制可表示0~15十六个十进制数.
7
十进制与二进制的相互转换
十进制数(以58为例)转换为二进制数:
2 2 2 2 2 2 58 余数 29 ……… 0 14 ……… 1 7 ……… 0 3 ……… 1 1 ……… 1 0 ……… 1
低位
十进制转换为二进制数,可用 十进制数被 2 做连除法,将每 次除得的余数排列起来,便构 成自地位到高位的二进制数。 二进制数转换为十进制数,可 将每位二进制数乘以 2 的位数 (从0起算)次方, 再对结果求和.
目前趋向于用双字节(如UNICODE)或可变 (1~4)字节(如UTF-8)编码来统一表示各国 文字和符号。
17
A
声音编码
T T
声音通过声卡的采样、编码和解码运算, 在模拟量与二进制数之间进行转换。录音 时,声卡按一定的频率对声波采样,每个 采样点的振幅被转化为一定位数的二进制 编码;放音时,声卡又按照相同的频率, 将二进制编码转换为音频信号加以回放, 这样我们就可以听到与录音时几乎一样的 声音。显然,采样频率越高,记录振幅的 二进制位数越多,声音也就越逼真。
6
十进制与二进制的对应关系
四位二进制数与十进制数的对应关系如下:
二进制 0000 0001 0010 0011 0100 0101 0110 0111 十进制 0 1 2 3 4 5 6 7 二进制 1000 1001 1010 1011 1100 1101 1110 1111 十进制 8 9 10 11 12 13 14 15
1.3 程序和算法
1.3.1 程序和程序设计 1.3.2 算法概述 1.3.3 算法实例
1.3.1 程序和程序设计
程序和软件 程序设计 程序设计语言 关于C语言
程序和软件
软件主要由程序和与其相关的数据组成, 程序是软件的主体和基础,但不是全部。 广义的程序泛指做某件事情的步骤,例如 节目上演的次序、会议议程等,在计算机 领域,特指让计算机进行某项运算的步骤 或指令序列。一个程序小到可以只有几行 (就像我们第一次写的“Hello world”), 大到可以具有成千上万行源代码。程序在 未经过商品化处理之前不能称之为软件。
C语言程序设计
第1章 绪论
第1章 绪论
1.1 二进制和信息编码 1.2 计算机硬件和软件 1.3 程序和算法 1.4 数据类型和数据对象
1.1 二进制和信息编码
1.1.1 二进制 1.1.2 信息编码
1.1.1 二进制
十进制 二进制 十进制与二进制的对应关系 十进制与二进制的相互转换 八进制和十六进制 二进制基本计量单位 二进制大数计量单位
算法的描述
设计出的算法需要用某种方法描述出来, 我们既可以用自然语言、流程图、N-S图、 伪代码等首先描述出算法(对于较复杂的 问题通常需要如此), 再将其改写为计算机 程序,也可以用某种程序设计语言将算法 直接写为计算机程序(对于较简单的问题 或熟练的程序员可以省去中间环节)。画 流程图和写伪代码需要遵循一定的规则, 这些请参考教材上的有关章节(略)。
由于C语言出现较早,故它将注意力集中 在描述和实现算法的微观方面,而忽略了 针对现实事物的宏观描述(即面向对象)。
1.3.2 算法概述
什么是算法 算法的描述
什么是算法
算法是适合于计算机特点的解题步骤。与 人类解析、模糊、喜新厌旧等特点不同, 计算机以机械、精确、不厌其烦和极高的 运算速度与人类形成互补。只要为其设计 好运算步骤并用程序表达出来,无论运算 步骤多么复杂、运算工作量多大,计算机 都会不辞辛劳地为我们计算出结果。其中 设计出速度快、占用存储空间少的算法, 是程序设计中的一项重要的工作。
1000,0000的补码为1000,0000,即1000,0000 = -128 1111,1111的补码为0000,0001,即1111,1111 = -1
用这种方法表示整数,则减去一个数,等于 加上这个数的补码。
15
实数编码—浮点码
由于整数编码表示数的范围十分有限,因此 对于小数位数不定、数量级很大,且精度要 求不高的实数来说,采用“定点”编码方法 显然是不合适的。在计算机内部,实数通常 采用“浮点”编码方法。四个字节浮点数的 编码原理示意如下:
注:(数字)2表示该数字为二进制数;数字+h表示该数字为十六进制数.
14
负整数编码—补码
为了用二进制表示负整数,并与正整数的表 示方法统一,人们将一定位数二进制的最高 位用作符号位,为0表示该整数为正数;为 1表示该整数为负数,其绝对值用补码确定. 一个二进制数的补码定义为该二进制数按位 取反再加1。因此对于 8 bit整数而言:
我们将10称为十进制数的“基”(radix)。
5
二进制
推而广之,一个整数可以以任何整数为基, 如果是以2为基的话,这个整数就是一个 二进制数 (binary number,Bin) ,例如:
(1101)2 = 1×23 +1×22 +0×21 +1×20 = 13
二进制数的特点是:
① 用0和1两个数码的组合表示数; ② 逢二进一; ③ 任何一个整数可以表示为各位数码与2的位数 (从0起算)次幂的乘积之和。
4
十进制
我们所熟悉的十进制(Decimal 简称 Dec), 其特征可以归纳为以下三点:
① 用 0 ~ 9 十个数码的组合表示数; ② 逢十进一; ③ 任何一个整数可以表示为各位数码与10的位数 (从0起算) 次幂的乘积之和。例如,十进制数1588 可以表示为:
(1588)10 = 1 ×103 +5 ×102 +8 ×101 + 8 ×100
19
1.2 计算机硬件和软件
1.2.1 计算机系统 1.2.2 计算机硬件 1.2.3 计算机软件
1.2.1 计算机系统
计算机系统是由计算机硬件和计算机软件 组成,两部分构成一个有机的整体。硬件 是软件运行的平台,相当于人类的肌体; 而具体的计算功能则是由软件完成的,它 相当于人类的灵魂。没有软件的硬件就像 是一个躯壳或者植物人,没有硬件的软件 则无法运行,就像是孤魂野鬼。 因此,计算机可定义为一台可编程机器, 它的运转和所有功能完全靠程序来控制。
1 bit
高位 符 号 位 指数位组 尾数位组
7 bit
24 bit
低位
16
字符编码
以往最常用的字符编码是ASCII码。西文用 一个字节表示 256种(通常是128种)不同 的字符,汉字(内部码)用两个字节来表示 最多65536个不同的汉字和符号。三组常用 西文字符的ASCII码如下:
0~9: 30h~39h,A~Z: 41h~5Ah,a~z: 61h~7Ah
10
二进制大数计量单位
就像国人用个、十、百、千、万、亿 来表示 不同数量级的十进制数一样,人们以千字 节(KB)、兆字节(MB)、千兆字节(GB)和 兆兆字节(TB)为单位来表示数量级很大的 二进制数:
高位
二进制数(以111010为例)转换为十进制数:
(111010)2 = 1×25+1×24+1×23+0×22+1×21+0×20 = 58
八进制和十六进制
二进制是为计算机设计的,为了便于人们 阅读和记忆,人们试图用一个数码来表示 4位二进制所能代表的16个数, 这便构成了 十六进制。以下是三种进制的对应关系:
18
图像编码
一幅数码图像用m×n个点的点阵来表示。 每个点用一定数目的二进制位组合表示不同 的颜色。用数码相机拍照时,实物被记录为 不同颜色点的点阵,并按一定的顺序扫描为 二进制数码序列,以图像文件的形式保存在 存储卡中(保存前一般需要压缩)。当用图像 处理软件打开图像文件时,图像又以相同的 序列加载到显示卡的内存,并被显示器回放 出来。显然显存越大、显示器的密度越高, 颜色就越逼真,动画的切换也就越快。
1.2.2 计算机硬件
计算机硬件由运算器、控制器、存储器、 输入设备和输出设备五大基本部件组成:
中央处理器 主机 硬件系统 外设 运算器 控制器
内存储器
外存储器 输入设备 输出设备
硬件的指标主要有字长、速度和存储容量, 目前我们所用机器的字长为32bit。
1.2.3 计算机软件
计算机软件由商业化程序的组合及相关的 数据、文档组成。每个软件都有其特定的 功能,并经过精心的设计和严格的测试, 故其开发需要相当大的人力和物力投入, 软件也因此具有一定的商业价值,受到了 著作权的保护。 软件可按照其运行的层次分为底层或系统 软件(如操作系统)及应用软件,后者可 按照功能进一步分类。
13
正整数编码—原码
正整数的二进制编码就是二进制数所代表 数量的本身。例如:
(0111)2 = 7h = 7 ( 4 bit) (0111,1111)2 = 7Fh = 127 ( 8 bit = 1 byte) (0111,1111,1111,1111)2 = 7FFFh = 32767 (16 bit = 2 bytes) (0111,1111,1111,1111 ,1111,1111,1111,1111)= 7FFF,FFFFh = 2,147,483,647(32 bit = 4 bytes)
Bin 0000 0001 0010 0011 0100 0101 0110 0111 Dec 0 1 2 3 4 5 6 7 Hex 0 1 2 3 4 5 6 7 Bin 1000 1001 1010 1011 1100 1101 1110 1111 Dec 8 9 10 11 12 13 14 15 Hex 8 9 A B C D E F
1千字节= 1024字节 (1KB = 1024 byte) 1兆字节= 1024千字节 (1MB = 1024 KB) 1千兆字节= 1024兆字节 (1GB = 1024 MB) 1兆兆字节= 1024千兆字节 (1TB = 1024 GB)
11
1.1.2 信息编码
什么是信息编码 正整数编码—原码 负整数编码—补码 实数编码—浮点码 字符编码 声音编码 图像编码
程序设计语言
程序是人Biblioteka Baidu为计算机设计出的解题步骤, 必须让计算机理解才能够在机器上执行。 为此,人类设计出若干面向人类、符合某 种语法规则的程序设计语言,并针对每种 语言开发一个“编译系统”,后者将用该 语言写成的程序翻译为计算机直接理解的 指令(机器语言),再放到计算机上执行。 我们称面向人类的计算机语言为高级语言; 面向机器的计算机语言为低级语言。
关于C语言
作为一种面向人类的高级语言,C语言具有 其它高级语言所不具备的一些特点:
由于C语言最初是为编写底层软件UNIX操作系统 而设计的,因此它兼顾了低级语言的某些特性, 其中用于访问内存的指针是其它语言不具备的。 C语言语法简捷、运算符丰富、可移植性好、生 成目标代码的质量高,这些是它的另一些特点。
12
什么是信息编码
就像一个给定位数的十进制数 (例如2118) 既可以表示数量 (两千一百一十八),也可以 表示车次、房号、学号等等,一个一定位数 的二进制数也可以用来表示不同的信息。 既然所有信息在计算机内部都是以二进制表 示的,因此数据、文字、声音、图象等各种 信息到了计算机中,都将被转换为一定位数 的二进制数码的组合。以给定位数的二进制 数码组合表示某种信息的方法,就称为这种 信息的二进制编码(binary coding)。
程序设计
程序设计(programming)是指运用某种程序 设计语言编写程序的过程,即设计并描述 出让计算机完成某项运算的一系列步骤的 过程,该过程一般分为两个阶段: ①设计阶段——分析待解决的问题、给出 一般性解决方案(算法),并进行初步验证。 ②实现阶段——对解决方案具体化,即用 程序设计语言描述出解决该问题的步骤, 并通过在计算机上编译、执行来实际验证。
9
二进制基本计量单位
在计算机领域,有两个与二进制有关的基 本数据计量单位:比特和字节。
一个二进制位称为一个比特 (bit),它是二进制的 最小计量单位,只能表示0和1这两个数。 八个二进制位(即两个十六进制位)称为一个字 节(byte),它是计算机存取数据的最小单位,一个 字节所能表示数的范围为:
即四位二进制可表示0~15十六个十进制数.
7
十进制与二进制的相互转换
十进制数(以58为例)转换为二进制数:
2 2 2 2 2 2 58 余数 29 ……… 0 14 ……… 1 7 ……… 0 3 ……… 1 1 ……… 1 0 ……… 1
低位
十进制转换为二进制数,可用 十进制数被 2 做连除法,将每 次除得的余数排列起来,便构 成自地位到高位的二进制数。 二进制数转换为十进制数,可 将每位二进制数乘以 2 的位数 (从0起算)次方, 再对结果求和.
目前趋向于用双字节(如UNICODE)或可变 (1~4)字节(如UTF-8)编码来统一表示各国 文字和符号。
17
A
声音编码
T T
声音通过声卡的采样、编码和解码运算, 在模拟量与二进制数之间进行转换。录音 时,声卡按一定的频率对声波采样,每个 采样点的振幅被转化为一定位数的二进制 编码;放音时,声卡又按照相同的频率, 将二进制编码转换为音频信号加以回放, 这样我们就可以听到与录音时几乎一样的 声音。显然,采样频率越高,记录振幅的 二进制位数越多,声音也就越逼真。
6
十进制与二进制的对应关系
四位二进制数与十进制数的对应关系如下:
二进制 0000 0001 0010 0011 0100 0101 0110 0111 十进制 0 1 2 3 4 5 6 7 二进制 1000 1001 1010 1011 1100 1101 1110 1111 十进制 8 9 10 11 12 13 14 15
1.3 程序和算法
1.3.1 程序和程序设计 1.3.2 算法概述 1.3.3 算法实例
1.3.1 程序和程序设计
程序和软件 程序设计 程序设计语言 关于C语言
程序和软件
软件主要由程序和与其相关的数据组成, 程序是软件的主体和基础,但不是全部。 广义的程序泛指做某件事情的步骤,例如 节目上演的次序、会议议程等,在计算机 领域,特指让计算机进行某项运算的步骤 或指令序列。一个程序小到可以只有几行 (就像我们第一次写的“Hello world”), 大到可以具有成千上万行源代码。程序在 未经过商品化处理之前不能称之为软件。
C语言程序设计
第1章 绪论
第1章 绪论
1.1 二进制和信息编码 1.2 计算机硬件和软件 1.3 程序和算法 1.4 数据类型和数据对象
1.1 二进制和信息编码
1.1.1 二进制 1.1.2 信息编码
1.1.1 二进制
十进制 二进制 十进制与二进制的对应关系 十进制与二进制的相互转换 八进制和十六进制 二进制基本计量单位 二进制大数计量单位
算法的描述
设计出的算法需要用某种方法描述出来, 我们既可以用自然语言、流程图、N-S图、 伪代码等首先描述出算法(对于较复杂的 问题通常需要如此), 再将其改写为计算机 程序,也可以用某种程序设计语言将算法 直接写为计算机程序(对于较简单的问题 或熟练的程序员可以省去中间环节)。画 流程图和写伪代码需要遵循一定的规则, 这些请参考教材上的有关章节(略)。
由于C语言出现较早,故它将注意力集中 在描述和实现算法的微观方面,而忽略了 针对现实事物的宏观描述(即面向对象)。
1.3.2 算法概述
什么是算法 算法的描述
什么是算法
算法是适合于计算机特点的解题步骤。与 人类解析、模糊、喜新厌旧等特点不同, 计算机以机械、精确、不厌其烦和极高的 运算速度与人类形成互补。只要为其设计 好运算步骤并用程序表达出来,无论运算 步骤多么复杂、运算工作量多大,计算机 都会不辞辛劳地为我们计算出结果。其中 设计出速度快、占用存储空间少的算法, 是程序设计中的一项重要的工作。
1000,0000的补码为1000,0000,即1000,0000 = -128 1111,1111的补码为0000,0001,即1111,1111 = -1
用这种方法表示整数,则减去一个数,等于 加上这个数的补码。
15
实数编码—浮点码
由于整数编码表示数的范围十分有限,因此 对于小数位数不定、数量级很大,且精度要 求不高的实数来说,采用“定点”编码方法 显然是不合适的。在计算机内部,实数通常 采用“浮点”编码方法。四个字节浮点数的 编码原理示意如下:
注:(数字)2表示该数字为二进制数;数字+h表示该数字为十六进制数.
14
负整数编码—补码
为了用二进制表示负整数,并与正整数的表 示方法统一,人们将一定位数二进制的最高 位用作符号位,为0表示该整数为正数;为 1表示该整数为负数,其绝对值用补码确定. 一个二进制数的补码定义为该二进制数按位 取反再加1。因此对于 8 bit整数而言:
我们将10称为十进制数的“基”(radix)。
5
二进制
推而广之,一个整数可以以任何整数为基, 如果是以2为基的话,这个整数就是一个 二进制数 (binary number,Bin) ,例如:
(1101)2 = 1×23 +1×22 +0×21 +1×20 = 13
二进制数的特点是:
① 用0和1两个数码的组合表示数; ② 逢二进一; ③ 任何一个整数可以表示为各位数码与2的位数 (从0起算)次幂的乘积之和。
4
十进制
我们所熟悉的十进制(Decimal 简称 Dec), 其特征可以归纳为以下三点:
① 用 0 ~ 9 十个数码的组合表示数; ② 逢十进一; ③ 任何一个整数可以表示为各位数码与10的位数 (从0起算) 次幂的乘积之和。例如,十进制数1588 可以表示为:
(1588)10 = 1 ×103 +5 ×102 +8 ×101 + 8 ×100
19
1.2 计算机硬件和软件
1.2.1 计算机系统 1.2.2 计算机硬件 1.2.3 计算机软件
1.2.1 计算机系统
计算机系统是由计算机硬件和计算机软件 组成,两部分构成一个有机的整体。硬件 是软件运行的平台,相当于人类的肌体; 而具体的计算功能则是由软件完成的,它 相当于人类的灵魂。没有软件的硬件就像 是一个躯壳或者植物人,没有硬件的软件 则无法运行,就像是孤魂野鬼。 因此,计算机可定义为一台可编程机器, 它的运转和所有功能完全靠程序来控制。
1 bit
高位 符 号 位 指数位组 尾数位组
7 bit
24 bit
低位
16
字符编码
以往最常用的字符编码是ASCII码。西文用 一个字节表示 256种(通常是128种)不同 的字符,汉字(内部码)用两个字节来表示 最多65536个不同的汉字和符号。三组常用 西文字符的ASCII码如下:
0~9: 30h~39h,A~Z: 41h~5Ah,a~z: 61h~7Ah