主要教学目标: 使学生掌握计算机内部各种数据的机器级表示,理解真值与机器数之间的关系,能够运用数据的机器级表示知识解释和解决高级语言程序设计中遇到的相关问题。
基本学习要求:
· 了解真值和机器数的含义。
· 了解无符号整数的含义、用途和表示。
· 了解带符号整数的表示方法。
· 理解为什么现代计算机都用补码表示带符号整数。
· 掌握在真值和各种编码表示数之间进行转换的方法。
· 能够运用整数表示知识解释和解决高级编程中整数表示和转换问题。
· 了解浮点数表示格式及其与表示精度和表示范围之间的关系。
· 掌握规格化浮点数的概念和浮点数规格化方法。
· 掌握IEEE 754标准,并能在真值与单精度格式浮点数之间进行转换。
· 能运用数据表示知识解释和解决高级语言编程中浮点数表示和转换问题。
· 掌握常用的十进制数的二进制编码方法,如8421码。
· 了解逻辑数据、西文字符和汉字字符的常用表示方法,如ASCII码、GB2312。
· 了解常用数据长度单位的含义,如bit、Byte、KB、MB、GB、TB等。
· 了解大端和小端排列方式,以及数据的对齐存储方式。
本章内容相对比较容易,学生也比较熟悉,对于信息的二进制表示、进位计数制等简单内容,完全可以让学生自学。如果课时不充裕,对于十进制数的表示和汉字字符编码部分,也可以只简单介绍其概要内容,细节部分留给学生课后阅读。关于高级语言中的各种数据类型与机器级数据表示之间的关系,应该要求学生掌握,这对于提高学生的程序设计和调试能力起到很大的作用。其实,这部分内容很简单,只要在教学过程中提醒学生关注并进行一些编程练习就能达到教学目的,而且程序设计课程中也会介绍这部分内容。
对于本章内容,教学过程中普遍存在的问题是,学生缺乏将机器级数据表示和程序设计及程序调试工作相互关联的意识。许多学生也许对机器级数据表示的基本原理和概念很了解,但在程序设计和调试工作中,往往不会运用所学知识解决实际问题,不会把高级语言中的类型定义、数值范围、数据类型转换等问题和本课程所学的知识联系起来。
为了增强学生对机器级数据表示的认识,可以让他们亲自编写相关的程序,通过程序的执行结果来理解本章所学的知识。与本章内容相关的编程练习有很多,例如:验证一些关系表达式的结果;确定float型变量和double型变量的精度;检查一些特殊表达式的运行结果,如一个非零整数除以0、一个非零实数除以0、0除以0、负数开平方等;检查机器是大端还是小端方式数据;检查数据是对齐存放还是不对齐存放。
与主教材配套的《计算机系统导论实践教程》中第3章“数据的机器级表示实验”中提供了与本章内容相匹配的编程调试实验,可以在完成《计算机系统导论实践教程》中第1章和第2章实验的基础上,进行数据的机器级表示方面的编程调试实验。