还有一种整数也经常在计算机内使用,称为“二进制编码的十进制”整数(Binary Coded Decimal,简称BCD整数),它使用4个二进位表示1个十进制数字,符号的表示仍与上相同。
2.实数(浮点数)的表示
实数也叫浮点数,因为它的小数点位置不固定。
一个实数总可以表达成一个纯小数和一个乘幂之积。
任意一个实数,在计算机内部都可以用“指数”(这是整数)和“尾数”(这是纯小数)来表示,这种用指数和尾数表示实数的方法叫做“浮点表示法”。所以,在计算机中实数也叫做“浮点数”,而整数则叫做“定点数”。
由于指数可以选用不同的编码(原码、补码等),尾数的格式和小数点位置也可以有不同规定,因此,浮点数的表示方法不是惟一的。不同计算机可以有不同的规定,这就引起了相互间数据格式的不兼容性。为此,美国电气与电子工程师协会(IEEE)制订了有关浮点数表示的工业标准IEEE754,已被当代所有各类处理器采用。
浮点数的长度可以是32位、64位甚至更长,位数越多,可表示的数值的范围越大,精度也越高。
(三)整数的性质和运算
1.整数补码表示的数学意义
无符号二进制整数的原码,其编码与数值之间的关系如下。
设K n Kn-1 …K1 K0是一个无符号二进制整数,S是它相应的十进制数值,则
S=Kn ×2 n +Kn-1 ×2n-1 +…+K1 ×21 +K0 ×2 0
其中的Kj(j=n,n-1,…1,0)只能为0或1,Kn 是最高位,K0 是最低位(个位)。
Kn Kn-1 …K1 K0 用来表示带符号整数时,Kn 是符号位,Kn-1 …K1 K0 则为数值位。若Kn Kn-1 …K1 K0 表示的是原码编码的整数,则十进制数值S与编码的关系是:
S=Kn-1 ×2n-1 +…+K1×2 1 +K0 ×2 0 (当Kn =0)
S=-(Kn-1 ×2 n-1 +…+K 1 ×2 1 +K0 ×20 )
(当Kn =1)
但是,如果Kn n-1 …K1 K0 表示的是补码编码的整数时,不论符号位K n 如何,十进制数值S与编码的关系可以统一地表示成为:
S=Kn ×(-2n )+Kn-1 ×2n-1 +…+K1 ×21 +K0 ×20 采用补码表示的n位二进制带符号整数的有效范围是: -2n-1 ≤S≤2n-1 -1
计算机在整数运算过程中,若结果超出此允许范围,则称为发生“溢出”。
2.整数的算术、逻辑运算
(1)不同长度整数之间的转换
一般而言,短整数可以转换成长整数表示,而反过来却不行。短整数转换成长整数表示的方法是:把符号位向左扩充至所需要的长度为止。
(2)整数的变号操作
所谓“变号操作”是指将该整数变成绝对值相同但符号相反的另一个整数。变号操作又叫“取负”运算,它的处理方法是:将该整数的每一个二进位变反,然后在最末位(个位)加1,其结果即为所求值。