无符号二进制整数的原码,其编码与数值之间的关系如下。
设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
计算机在整数运算过程中,若结果超出此允许范围,则称为发生“溢出”。