在数字硬件中,数字是用二进制字存储的。一个二进制字是一个固定长度的位序列(1和0)。硬件组件或软件功能如何解释这个1和0的序列是由数据类型定义的。二进制数可以用定点数据类型或浮点数据类型表示。
定点数据类型的特征是:以位为单位的字长度、二进制点的位置以及它是有符号的还是无符号的。二进制点的位置是定点值缩放和解释的方法。
例如,一个广义定点数(有符号或无符号)的二进制表示如下所示:
在哪里
b我是我th二进制数字。
王是以位为单位的字长。
bwl-1是最高位(MSB)的位置。
b0是最低有效位(LSB)的位置。
二进制点显示在LSB左边的四个位置。在这个例子中,这个数字有四个小数位,或者长度为4的分数。
定点数据类型可以是有符号的,也可以是无符号的。定点值是带符号还是无符号通常不会在二进制字中显式编码;也就是说,没有符号位。相反,符号信息是在计算机体系结构中隐式定义的。
带符号的二进制定点数在计算机硬件中通常有三种表示方式:
符号/幅度——二进制字的一位总是专用的符号位,而字的其余位则编码数字的幅度。使用符号/幅度表示的否定包括将符号位从0(正)翻转到1(负),或从1到0。
在一个二进制数的补码中求反需要一个位补。也就是说,所有的0都变成了1,所有的1都变成了0。在一个补数表示法中有两种表示零的方法。一个全部为0的二进制字表示“正”零,而一个全部为1的二进制字表示“负”零。
二的补码——使用带符号二的补码表示的否定由位反(转换为一的补码)后跟一个一的二进制加法组成。例如,000101的二进制补码是111011。
2的补码是带符号的定点数最常见的表示,也是定点设计器™文档惟一使用的表示。