第1章 准备知识和开发环境Word格式.docx
- 文档编号:18589097
- 上传时间:2022-12-28
- 格式:DOCX
- 页数:12
- 大小:130.99KB
第1章 准备知识和开发环境Word格式.docx
《第1章 准备知识和开发环境Word格式.docx》由会员分享,可在线阅读,更多相关《第1章 准备知识和开发环境Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
例如,字符'
A'
的十进制ASCII码值为65,内存中存储的是'
的二进制ASCII码值。
(2)常见字符的十六进制ASCII码值
'
~'
Z'
的ASCII码值为41H~5AH;
a'
z'
的ASCII码值为61H~7AH;
0'
9'
的ASCII码值为30H~39H;
(3)扩展ASCII码
基本ASCII码共7位,可表示128个西文字符。
后来又提出的扩展ASCII码,用8位二进制编码,最高位可以为0或1,共可表示256个西文字符。
2.整数在内存中的存储格式
带符号的十进制整数在机内通常有三种表示法:
原码、反码和补码。
(1)整数的原码表示
【例1.4】求±
57的原码(保留最高位作为符号位)。
先将57无符号地转换成二进制数:
57=111001
[+57]原=0111001,[-57]原=1111001
说明:
由于内存是以字节为单位存放数据的,往往需要对原码表示结果进行符号位扩展,即将原码结果凑成字节的整数倍才能存放在内存中(见例1.5)。
【例1.5】用16位(2字节)原码表示±
57。
[+57]原=0000000000111001,[-57]原=1111111111111001
对原码补充说明两点:
●+0和-0的原码表示不同,假设用2字节表示±
0的原码(采用1位符号位),则
[+0]原=0000000000000000,[-0]原=1000000000000000。
●N位原码(采用1位符号位)表示十进制整数范围为-(2N-1-1)~2N-1-1,例如8位原码表示十进制整数范围为-(28-1-1)~28-1-1,即-127~127。
(2)整数的反码表示
【例1.6】求±
57的反码(保留最高位作为符号位)。
由例1.4可知:
[+57]原=0111001,[-57]原=1111001
正整数的反码就是其原码,负整数的反码只对其原码的数值部分逐位取反:
[+57]反=0111001,[-57]反=1000110
【例1.7】用16位(2字节)反码表示±
[+57]反=0000000000111001,[-57]反=1111111111000110
对反码补充说明两点:
●+0和-0的反码表示不同,假设用2字节表示±
0的反码(采用1位符号位),则
[+0]反=0000000000000000,[-0]反=1111111111111111。
●N位反码(采用1位符号位)表示十进制整数范围为-(2N-1-1)~2N-1-1,例如用8位反码表示整数,则能表示的十进制整数范围为-(28-1-1)~28-1-1,即-127~127。
(3)整数的补码表示
【例1.8】求±
57的补码(保留最高位作为符号位)。
由例1.6可知:
正整数的补码就是其反码,所以正整数的原码、反码和补码是相同的。
负整数的补码只在其反码的数值部分的末位加1:
[+57]补=0111001,[-57]补=1000111
【例1.9】用16位(2字节)补码表示±
[+57]补=0000000000111001,[-57]补=1111111111000111
如果用32位(4字节)补码表示±
57的话,则
[+57]补=00000000000000000000000000111001
[-57]补=11111111111111111111111111000111
对补码补充说明三点:
●带符号整数在机内多采用补码表示。
Intel处理器将多字节补码按照“高高低低”原则
存放在内存中,即较高字节放在地址较高的内存单元中,较低字节放在地址较低的内存单元中。
图1-4给出了±
57的两字节补码在内存中的存储格式,图1-5给出了±
57的四字节补码在内存中的存储格式。
●+0和-0的补码表示相同,假设用2字节表示±
0的补码(采用1位符号位),则
[+0]补=[-0]补=0000000000000000。
●N位补码(采用1位符号位)表示十进制整数范围为-2N-1~2N-1-1,例如用8位补码表示整数,则能表示的十进制整数范围为-28-1~28-1-1,即-128~127(其中10000000表示-128)
【课内思考题1.1】16位和32补码(采用1位符号位)表示十进制整数的范围?
(4)数字字符串和整数的区别
所谓字符串是指由0个或多个字符组成的字符序列(不含任何字符的字符串为空串),在C程序中,表示字符串时要加双引号,例如"
TheCProgrammingLanguage"
。
空串在C语言中仅用一对双引号表示,即"
"
在西文字符中也存在'
这10个数字字符,所谓的数字字符串就是指由仅由若干数字字符构成的字符串,例如"
1234"
值得注意的是数字字符串"
和整数1234是完全不同的。
010011010010
首先,我们对字符串和整数进行不同的操作,例如整数可以进行各种算术运算,而字符串只能进行连接、截取、求串长等操作。
其次,数字字符串和整数的内存存储格式不同。
(每个字符用各自的ASCII码表示)和1234(假设用4字节存储整数1234,用补码表示)的内存格式,如图1-6和图1-7表示。
4.浮点数的存储格式
浮点数,即带小数点的实数,首先要转换成规格化的二进制浮点数,然后遵循IEEE754标准存储。
(1)十进制小数转换成二进制小数
【例1.10】将十进制浮点数57.8125转换成二进制浮点数。
先将整数部分转换成无符号形式:
111001。
然后转换小数部分:
0.8125*2=1.6250.1
0.6250*2=1.2500.11
0.2500*2=0.5000.110
0.5000*2=1.0000.1101
得到:
0.1101,合起来就是57.8125=111001.1101。
(2)浮点数的规格化
浮点数的小数点的位置可以浮动,例如111001.1101=1110.011101*22=11100111.01*2-2,所以浮点小数必须变为定点小数(规格化处理)后才能存储。
所谓二进制浮点数的规格化是指,通过调整阶码,使得数的有效值在1~2之间。
例如111001.1101规格化后得到:
1.110011101*25。
(3)IEEE754标准
经过规格化处理后的浮点数就可以按照IEEE754国际标准存储了。
IEEE754标准将二进制浮点数分成三段存储,第一段是符号段,总占1位。
第二段是阶码段,第三段是尾数段。
如果用32位二进制数表示存储规格化浮点数,那么为符号分配1位,阶码分配8位,尾数分配23位,见图1-8。
如果用64位二进制数表示存储规格化浮点数,那么为符号分配1位,阶码分配11位,尾数分配52位,见图1-8。
对于浮点数111001.1101,如果采用IEEE754标准,用32位二进制数加以存储的话,
首先将其规格化为1.110011101*25,进一步得到1.11001110100000000000000*25,最终得到:
0,00000101,11001110100000000000000,最后也遵循高高低低的原则存放在内存中(事实上,阶码部分在存储时还要做一个变换,可以参考《C++程序设计教程(第二版)》P73-75页)。
浮点数在内存中的存储格式,对初学者而言有些难以理解。
但是大家必须要知道这样一个事实,即十进制浮点数必须先转换成二进制浮点数,然后进行规格化,最后按照符号、阶码、尾数三部分存储。
同样是用32位二进制数去表示浮点数和整数,很明显浮点数的表示范围要大得多。
【课后作业1】
1.仿照图1-4和图1-5,画出±
2012的2字节补码和4字节补码在内存储器中的存储格式。
2.画出"
abc123"
在内存中的存储格式。
1.2"
Hello,World!
与编程环境简介
CPU唯一能够识别的语言是机器语言,换言之用高级语言(如C语言)编写出来的程序(源程序)必须经过编译或者解释(C程序需要编译),转变为机器语言表示的目标程序才能被CPU识别运行。
一、常用C编译器简介
(1)TurboC2.0
(2)VisualC++6.0
(3)C-Free4.0
本课程在讲解时,多以VC6.0作为课堂演示环境。
学生上机要求使用VC6.0或C-Free作为开发工具。
二、第一次编程实践
1.程序运行的一般步骤
这里以C语言为例,说明运行一个程序的一般步骤(注:
使用其他语言如C++或者Java,进行上机的步骤总是一致的)。
(1)编辑。
使用文本编辑程序(如windows的记事本),或某些集成开发环境(如VC6.0、C-Free等)自带的文本编辑工具,输入源程序文本并保存为.C文件(即C源程序文件)。
(2)编译。
使用某个C编译器,对保存在外存储器上的C源程序文件进行编译,编译结果作为目标文件保存到外存(通常和源文件在同一目录下)。
目标文件扩展名通常为.obj。
(3)连接。
由于一个C程序可以被组织在多个源文件中,而每个源文件在编译时会得到各自的目标文件,所以必须通过连接程序把这些目标文件以及程序中用到一些系统功能所在的目标文件(通常称为库文件)连接起来,形成一个可执行程序的文件保存到外存。
可执行程序文件的扩展名通常为.exe。
(4)运行。
通过操作系统提供应用程序运行机制,把可执行文件从外存装载到内存运行。
在上述过程中,一旦某个环节出现问题都需要用户重新编辑源程序。
初学程序设计时,对上述过程未必有清晰认识。
只有通过不断上机,才能深刻理解上机
运行程序的整个过程。
2.“hello,world”
“hello,world”程序出自K&
R的名著《TheCProgrammingLanguage》,现已成为所有程序设计语言入门的第一课了!
【例1.11】屏幕显示,打印“hello,world!
”。
/*THEFOLLOWINGPROGRAMHASDEMONSTRATEDHOWTOPRINT“hello,world!
”ONSCREEN*/
#include<
stdio.h>
main()
{
printf("
hello,world!
\n"
);
/*print"
onsreen!
*/
}
源程序说明如下:
(1)首先,C语言对大小写敏感,如果出现了大小写拼写错误(例如,将main拼写成了Main),程序就无法运行。
(2)为了增加程序的可读性,用户可在程序中添加注释。
注释可以放在程序任意位置,注释内容放在标记/*和*/之间。
注释不会出现在可执行程序中(编译器完全忽略程序中的注释),所以可以在程序中添加任意多的注释而不必担心可执行代码会膨胀。
(3)下面先跳过源程序中的第二行。
main表示一个函数名。
一个C语言程序,无论大小,都是由若干函数组成的。
通常情况下,函数的命名没有限制,但main是一个特殊的函数名——每个C程序都从main函数开始执行,所以为了代码能够得到执行,必须在源程序文件中包含一个main函数。
一个函数可以带有若干参数,也可以不带参数。
参数放在函数名后面的圆括号中,由此可见main函数没有参数。
(4)需要注意代码中的花括号{}。
C语言中的任何函数都以“{”开始,用“}”结束。
函数中可以包含若干语句,而在上面的main函数中只有一条语句(C语句就是这种语言的句子)。
C语言中的每个句子必须以分号结束。
回车不是语句的结束标志,因此,如果需要可以将一条语句写在多行上(尤其是当语句较长时)。
(5)上面main函数体中的语句“printf("
hello,world\n"
”的功能是将一个文本行输出到控制台屏幕上。
在这里调用了printf函数,并传递给它一个字符串参数,printf函数将传递给它的字符串参数显示在控制台屏幕上。
字符串包含了0个或多个字符,C语言用双引号作为字符串的界定符。
需要注意的是'
\n'
是一个特殊的字符,用于换行打印。
printf是定义在标准输入输出库stdio的系统函数(编译器为用户方便编程提供给用户使用的函数),所以必须在代码开头(所有函数定义之前)用#include指令,把关于printf函数声明的头文件stdio.h包含进来,即“#include<
【课内编程练习1.1】打印“钻石”图案。
*
***
*****
【课内编程练习1.2】完成教材
1.3词法规则
1.基本字符集
字符集是指在一个C语言程序中可以出现的字符的集合。
C语言的字符集包括以下字符:
(1)英文字母:
A~Z,a~z
(2)数字字符:
0~9
(3)特殊字符:
空白符!
#%^&
*_+=-~<
>
/\'
"
;
.,()[]{}
空白符包括空格、横向制表符、纵向制表符、换行符、换页符和注释,相邻的标识符(相当于英语中的单词)、关键字(具有特殊含义的单词)和常量之间需要用空白符分隔。
2.标识符
标识符是由字母和数字构成的序列。
在程序设计中,标识符用于对变量、函数等程序实体进行命名。
C语言中用户标识符命名规则如下:
(1)首字符必须是字母(包括下划线)。
(2)后续字符可以是字母(包括下划线)或数字字符。
(3)标识符区别大小写。
例如,Sum与sum是两个不同的标识符。
对于内部标识符来说,至少前31个字母是有效的,在某些实现中,有效的字符数可能更多(取决于编译器)。
用于外部连接的标识符的限制更严格一些,实现(编译器)可能只认为这些标识符的前6个字符是有效的,而且有可能忽略大小写的不同。
3.关键字
C语言中具有特殊含义的标识符称为关键字(也叫保留字),不能用于其他用途:
autodoubleintstructbreakelselongswitch
caseenumregistertypedefcharexternreturnunion
constfloatshortunsignedcontinueforsignedvoid
defaultgotosizeofvolatiledoifstaticwhile
关于这些关键字的含义和使用,我们将在后面逐步地加以介绍。
用户不能使用关键字对程序实体进行命名。
【例1.12】C语言中的标识符只能由字母、数字或下划线3种字符组成,且第一个字符
。
A)必须为字母B)必须为下划线
C)必须为字母或下划线D)可以是字母、数字和下划线中任一种字符
【例1.13】下面四个选项中,均是不合法的用户标识符的选项是。
A)A、P_0、doB)float、la0、_A
C)b-a、goto、intD)_123、temp、INT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第1章 准备知识和开发环境 准备 知识 开发 环境