考试重点:数据的机器级表示与处理
在计算机内部,数值以机器数的形式进行编码,这是数据处理的基础。首先,我们来探讨 机器数的两种主要表示形式:
接着,我们研究 R进制之间的转换,特别是二进制转十进制、八进制和十六进制的过程。小数部分通过乘以基数取整,遵循上左下右的原则,而整数和小数部分则需要结合。
例题解析:例如,十进制数135.6875如何转换成二进制、八进制和十六进制,展示了实际应用中的转换技巧。
在更深入的讨论中,补码计算对于正负数的表示至关重要,正数用原码表示,负数则需要取反加1。了解C语言的规定,它通常按无符号整数进行运算,而C90/99标准界定了常整数类型的范围。
浮点数的表示更为复杂,它由实数部分S(符号)、尾数M和指数E组成,其中指数决定了精度和范围,而尾数位数反映有效数字。非全0非全1的阶码表示非零规格化数,遵循IEEE754规范。数据类型转换时,可能会遇到精度损失或溢出的问题。BCD码,如8421码,专门用于十进制数的精确存储,内存栈的分配也遵循特定规则。
运算细节,比如按位逻辑运算的符号规则、移位操作可能带来的溢出,以及整数加减时的符号位考虑,都是理解浮点数运算的关键。浮点数运算涉及对阶、尾数处理、规格化、舍入和溢出判断,特别是乘除运算时的特殊数据表示和“大数吃小数”现象。例如题目的例子深入剖析了进制转换、8421码、原码补码、浮点数表示以及OF/SF/CF/ZF等标志的意义。
总的来说,本次复习的核心内容围绕公式转换、极端值处理、浮点运算规则和特殊运算条件,深入理解对阶、尾数操作以及溢出判断是必不可少的。让我们一起把握这些基础知识,为期末考试做好充分准备。