计算机系统概论第十二章.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机系统概论第十二章

第十二章 变量和运算符 12.1 引言 在这一章中,我们包含了高级程序设计语言的两个基本概念,变量和运算符。变量保存了程序执行所需的数值,而运算符是对这些数值进行操作的语言机制。变量和运算符一起使得程序员能够更容易的表达程序所要实施的工作。 下面的一行C代码是包含了变量和运算符的语句。在这个语句中,加法运算符+”被用来在变量score的原值上加3。这个新值再通过使用赋值运算符=”被赋值给变量score。如果score在这个语句执行之前等于7,执行之后它将等于10。 core = score +3; 在这一章的第一部分,我们将进一步认识C程序设计语言的变量。C中的变量是很简明的:三个最基本的类型就是整数,字符以及浮点数。在变量之后,我们会介绍C的丰富的运算符集合,并提供大量的例子来帮助说明它们的运算。我们的研究方法的一个唯一的特点就是我们可以把这些高级概念和低级材料相联系,在这一章的第三部分,我们就会通过讨论当编译器试图机器代码处理变量和运算符时的观点来实现这一点。我们将会通过解决一些问题和一些包含C的变量和运算符的概念来结束这一章。12.2 变量 数值是程序执行操作的数据项。数值的例子包括循环的计数器,用户输入的数值,或者一系列数字相加的部分和。程序员花费很多的精力来保存这些数值。 因为数值是如此重要的程序设计的概念,高级语言努力让程序员管理它们的过程更容易。高级语言允许程序员可以用符号引用数值,使用一个名字而不是一个存储单元。不管什么时候我们想对数值进行运算,语言会自动生成数据传送操作的正确顺序。因此程序员可以集中精在写程序上,而不需要担心在存储器中何处存储数值,或者在存储器和寄存器之间传送。在高级语言中,这些用符号命名的数值被称为变量。 为了正确地记录程序中的变量,高级语言翻译器(例如C编译器)需要知道每个变量的几个特征。很明显,需要知道变量的符号名。需要知道变量包含的信息的类型。需要知道在程序中何处可以访问该变量。在大多数语言中,包括C语言,这个信息通过变量的声明提供。 让我们看一个例子,下面声明了一个包含了整数值的被称为echo的变量。 int echo; 基于该声明,编译器会为echo预留一个整数所需的存储空间(有时,编译器可以优化程序,这样echo被存储在一个寄存器中,因此不需要存储单元,但那是后面的课程的主题)。无论echo何时被后面的C代码所引用,编译器会生成适当的机器代码来访问它。12.2.1 三种基本数据类型:整,字符,双精度 至此,你应该对下列概念非常熟悉了:一个特定的位组合的含义取决于加在该组合上的数据类型。例如,二进制组合0110 0110可能表示小写字母f或者表示十进制数102,这取决于我们把该组合当作一个ASCII码数据类型还是一个二进制补码的整数数据类型来对待。变量的声明告诉编译器关于该变量的类型。编译器根据变量的类型信息为该变量分配适当的 存储空间。类型还指明在机器层上如何对该变量上执行运算。例如,在LC-3上可以用一个ADD指令对两个整变量执行加法运算。如果两个变量是浮点类型的,LC-3编译器将生成一个指令序列来执行加法,因为没有一条单独的LC-3指令能实现浮点数的加法。 C支持三种基本数据类型:整,字符和浮点数。这些类型的变量可以通过使用类型标识符int、char和double(双精度浮点数的缩写)被创造。 int int类型标识符声明了一个有符号的整变量。一个int数值的内部表示和范围取决于计算机的ISA和被使用的编译器的规定。例如,在LC-3上,一个int是一个能表示从-32768到32767之间的16位的二进制补码整数。在一台基于86的计算机上,一个int可能是一个能表示从-2147483648到+2147483647之间的数值的32位的二进制补码数。在大多数情况下,一个int是一个底层ISA的字长的二进制补码整数。 下面的一行代码声明了一个被称为numberOfSeconds的整变量。当编译器看到这个声明时,就为这个变量留出足够的存储空间(在LC-3的情况下是一个存储单元)。 int numberOfSeconds; 这一点应该不奇怪,整的变量是很频繁地在程序中被使用的。它们经常很方便的表示我们想在程序中处理的现实世界的数据。如果我们想要表示时间,假如用秒表示的话,一个整变量将是完美的。在一个跟踪鲸鱼移动的应用中,我们能够使用一个整来表示能够看到的加利福尼亚海岸的一群灰鲸的大小。整还对程序的控制有用。一个整能够在计数器控制的循环中作为计数器使用。 char char类型标识符声明了表示一个字符数据的变量。接下来有两个例子。第一个声明创造了一个名为lock的变量。第二个声明了key。第二个声明有点不同,它还包含了一个初始化。在C中,任何一个变

文档评论(0)

zijingling + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档