《高级语言》自主学习内容
说明:带“*”的为自主学习的基本要求。主要参考教材、《C程序设计(第三版)》 。
一、进制相关知识
数值数据在计算机中以二进制形式存放。相关概念如下: 位(bit):指一位二进制代码,它只具有0和1两个状态。
字节(byte):8位二进制代码为一个字节,它是衡量信息数量或存储设备容量的单位。
字(Word):字由字节构成,一般为字节的整数倍。也是表示存储容量的单位。
字长:是指参与一次运算的数的位数,它与指令长度有着对应关系。字长的大小还是衡量计算机精度和运算速度的一项技术指标。
数值数据的表示最常用的十进制,另外还有二进制、八进制、十六进制等。 二进制是逢二进一,所有的数都用两个数字符号0或1表示。二进制的每一位只能表示0或1。例如(1)10=(001)2。
计算机中的数值是以补码表示的,正数的补码和原码相同;负数的补码:将该数的绝对值的二进制形式按位取反再加1。
求正数原码的方法:除基逆序取余至商为0止。如10的原码为0……01010。 求负数补码示例。例如:求-10的补码: 先求10的原码(设为2个字节长):
0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 按位取反:
1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 再加1,得-10的补码:
1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 由此可知,左面的第一位是表示符号的。
八进制是逢八进一,所有的数位都用数字符号0~7表示。
二进制的缺点是表示一个数需要的位数多,书写数据和指令不方便。通常,为了方便起见,将二进制数从低向高每三位组成一组。例如:有一个二进制(100100001100)2,每三位一组,即:(100,100,001,100)2可表示成八进制数(4414)8,如此表示使得每组的值大小是从0(000)~7(111),且数值逢
八进一,即为八进制。
十六进制是逢十六进一,所有的数位都用数字符号0~9及字母A~F(也可以用a~f)表示;A~F或a~f表示十进制中的10~15。
若将二进制数每四位一组,每组的值大小是从0(0000)~15(1111),且逢十六进一,即为十六进制。用A、B、C、D、E、F分别代表10到15的6个数。上面的二进制数(1001,0000,1100)2,可以表示成十进制数(90C)16。
十进制数转换为其他进制数的方法:对于整数部分,除以基数逆序取余至商为0止;对于小数部分:乘以基数顺序取整至小数为0或达到需要的精度止。如:
(123)10=(173)8=(7B)16
十进制数123转换为十六进制数和八进制数,用短除法,过程如下: 16 16
8 8 8
其他进制数转换为十进制数,根据按权展开式计算。如:
(173)8=3*80+7*81+1*82=(123)10
123 7 ……11 0 ……7 123 15 ……3 1 ……7 0 ……1
二*、算法的流程图描述
表示算法可以:用自然语言表示算法、用流程图表示算法、用伪代码表示算法、用计算机语言表示算法等。
用流程图表示算法,直观形象,易于理解。一个流程图包括: 1. 表示相应操作的框; 2. 带箭头的流程线; 3. 框内外必要的文字说明。 下图所示是流程图的基本要素。
例1:用流程图表示求5!的算法。
例2:有50个学生,要求将他们之中成绩在80分以上者打印出来。
如果,n表示学生学号,ni表示第个学生学号;g表示学生成绩,gi表示第个学生成绩
用流程图表示算法如下:
例3:用流程图表示判定闰年的算法。