计算机组成原理 2 数据的表示和运算

如题所述

第1个回答  2022-06-24

本章重点讨论计算机内部数据的机器级表示方式,包括进位计数制、二进制定点数的编码表示、无符号整数和带符号整数的表示、IEEE 754浮点数表示标准、西文字符和汉字的编码表示、十进制数的二进制编码表示(即BCD)、C语言中各类数据类型的表示和转换、数据宽度和存放顺序以及几种常用检/纠错码的编码表示与使用方法。

在计算机内部,所有信息都用二进制数字表示。这是因为:

指令所处理的基本数据类型分为2种:

日常生活中,常使用带正负号的十进制数表示数值数据。但是,在计算机内部,数值数据通常使用二进制数表示。如果采用十进制数表示数据的话,也要将十进制数编码译成二进制数,即采用二进制编码的十进制数(Binary Coded Decimal Number,简称BCD)表示。

表示一个数值数据要确定三个要素:进位计数制,定/浮点表示和编码规则。任何给定的一个二进制0/1序列,在未确定它采用什么进位制、定点还是浮点表示以及编码表示方法之前,它所代表的数值数据的值是无法确定的。

一般用B(Binary)表示二进制、O(Octal)表示八进制、D(Decimal)表示十进制、H(Hexadecimal)表示十六进制

计算机在数据输入之后或输出之前都必须实现这些计数制和二进制数之间的转换。

定点数的编码表示主要有以下4种, 原码、补码、反码和移码 。通常将数值数据在计算机内部编码表示的数称为 机器数 ,而机器数真正的值称为机器数的 真值

注意:以下各种表示方法都是在8位计算机中的原码表示,如果在32位或16位计算机中,表示方法是一样的,只是多了几个0而已.

一个数的原码表示由符号位也叫 数符 (左边第一位,也可以说是最高位,0表示正数,1表示负数)直接跟 数值部分 (数的绝对值)为构成,因此,也称“符号-数值”(sign and magnitude)表示法。正数和负数的编码表示仅符号位不同,数值部分完全相同。

一个数的补码表示由符号位跟上真值的模2 n 补码构成,补码表示法也称为“2-补码”(two's complement)表示法

负数的补码可采用“各位求反,末位加1”的方法得到,如果仅各位求反而末位不加1,那么就可以得到负数的反码表示,因此负数反码的定义就是在响应的补码表示中末位减1。

反码表示存在以下几个方面的不足:

用浮点数表示一个数值数据时,实际上是用这两定点数来表示:用一个定点小数表示 浮点数的尾数 ,用一个定点整数表示浮点数的 (指数)。一般情况下,浮点数的阶都用一种称为 移码 的编码方式表示。为避免混淆,将阶的移码称为阶码,因此阶指的是真值,而阶码指的是机器数。

阶E可以是正数,也可以是负数,当进行浮点数的加减运算时,必须先 对阶 (即比较两个数阶的大小并使之相等)。为简化比较操作,是操作过程不涉及阶的符号,可以对每个阶都加上一个正的常数,称为 偏置常数 ,使所有阶都转换为整数,这样,在对浮点数的阶进行比较时,就是对两个正整数进行比较,因而可以直观的将两个数按位从左到右进行比较,简化了对阶操作。

假设用来表示阶的移码的位数位n,则[E] =偏置常数+E。通常,偏置常数取2 n-1 或2 n-1 -1。

相似回答