4 .计算机内数值数据的表示及二进制编码
计算机中的数值数据分成整数和实数两大类。
( 1 )整数的表示计算机中的整数分为无符号整数和有符号整数。由于整数的小数点隐含在个位数的右面,也称为定点数。
1 )无符号整数,这类整数一定是正整数,故无符号整数的所有二进位都用来表示数值,它们可以是 8 位、 16 位、 32 位或 64 位。 8 位二进制无符号整数,其十进制取值范围为 0~255 ( 28~1 ) ,同理, 16 位二进制无符号整数,其十进制取值范围为。0~65535 ( 216 一 1 )。在计算机中,无符号整数除了表示数据以外,也常用于表示地址。
2 )有符号整数,有符号整数必须使用一个二进位表示符号,称为符号位。通常符号位放在二进制数的最左面的一位,即最高位,一般规定0表示” +”(正数) , 1 表示“-”(负数)。在计算机中有符号数的表示是将符号位和数值位一起编码。为此引人两个基本概念:机器数和真值,机器数是指数在计算机中的二进制表示形式,真值(或称计算数的真值)是指带符号位的机器数所对应的数值。
有符号整数在计算机内有三种编码方法:原码、补码和反码。
① 原码表示法,此时计算数的最高一位表示符号,0表示正数,1 表示负数,其余各位则表示数值的大小(绝对值)。如:
x = + 0101010
[ x]原= 00101010 (不变)
x =-0101010
[ x] 原= 10101010 (负号“一”用 1 表示)
② 反码表示法,对于正数,反码表示和原码表示相同;对于负数,其反码是除符号位外,原码的每位求反(即。0变为 1 , 1 变为 0 ) ,如:
x=+
0101010 [x]原= 00101010 .[x ]反=
00101010
x =-0101010
[x]原= 10101010 [x]反=
11010101
③ 补码表示法,对于正数,补码表示和原码表示相同;对于负数,其补码是将原码除符号位外,原始的每位求反(即0变 1 , 1 变 0 ) ,末位加 1 ,如:
x = +
0101010 [x]原=00101010 [x]补= 00101010
x=-
0101010 [x]原= 10101010 [x]补= 11010110
在计算机中的整数常采用补码表示。