多语言展示
当前在线:1562今日阅读:155今日分享:35

计算机数值数据的编码

数值型数据有大小、正负之分,能够进行算术运算,如552、-345. 17、1/3等。如何 用“0”、“1”描述正负号、小数点等问题呢?在计算机内将数值型数据全面、完整地表示 成一个二进制数(机器数),应该考虑4个因素:机器数的范围、机器数的符号、编码方法 和机器数中小数点的位置。
工具/原料

计算机

方法/步骤
1

1. 机器数的范围机器数的表示范围巾硬件(CPU中临时存放数据的寄存器)决定。当使用8位寄存器 时,字长为8位,一个8位无符号整数的最大值是(11 1111 11 )2 =255,机器数的范围为 ()〜255;当使用16位寄存器时,字长为16位,一个16位无符号整数的最大值是 (FFFF) |6 =65535,机器数的范围为 0 ~65535。

2

2. 机器数的符号在计算机内部,任何信息都只能用二进制的“0”和“1”来表示。通常规定机器数的最高位为符号位,并用0表示正,用1表示负。这时在一个8位字长的计算机中,数据的格 式如图下图所示,最高位〇7为符号位,D6〜D,为数值位。例如:用8位二进制数表示-7:

3

编码方法:以上用0、1表示正负数,其他位直接表示二进制数值的方法称为“原码”编码,为了 方便进行计算,计算机中还经常用“反码”和“补码”表示数据。因为这两种编码可以很 方便地用加法器(计算机硬件的基本运算部件是加法器,计算机中的全部运算都要转化为 加法)实现减法运算。

4

1) 反码反码是计算机内的一种数值编码方法,该编码表示正数的方法与原码相同,表示负数 时,将二进制数除符号位之外按位求反。例如:原码:10000111 (十进制数-7)反码:11111000 7位数字位按位求反(0—1,1—0)

5

2) 补码补码是计算机内的又一种数值编码方法,该编码表示正数的方法与原码相同,表示负数 时,将二进制数除符号位之外按位求反,末位加1。例如:原码:10000111 (十进制数-7)反码:11111001 7位数字位按位求反(0—1,1—0),末位加1。在计算机中,计算一个减法,实际是计算加一个负数,例如计算10-7,转化成用8位 二进制表示: - 。用补码加法表示:+ 11111001〇两数相加:

6

机器数中小数点的位置:在计算机内部小数点的位置是隐含的。隐含的小数点位置可以是固定的,也可以是变动 的,前者称为“定点数',后者称为“浮点数”。

7

1)定点数定点数中又有定点整数和定点小数之分。定点整数小数点的位置约定在最低位的右边,用来表示整数,如下图左所示;定点小 数小数点的位置约定在符号位之后,用来表示小于1的纯小数,如下图右所示

8

2)浮点数如果要处理的数既有整数又有小数,用定点数表示会很不方便。这时可采用浮点数,顾 名思义,浮点数即小数点浮动的数。将十进制数66.37、-6.637、0.6637、-0.06637用指数形式,即用科学计数法表示, 它们分別为:0. 6637 x 102 N -0. 6637 x 1〇' % 0. 6637 x 10° % -0. 6637 x 10可以看出,在原数字中无论小数点前后各有几位数,它们都可以用一个纯小数(称为 尾数,有正、负)与10的整数次幂(称为阶数,有正、负)的乘积形式来表示,这就是浮 点数的表示法。问理,一个二进制数W也可以表示为:yV=±iSx2^式中的iV、P、S均为二进制数。S称为iV的尾数,即全部的有效数字(数值小于1), •S前而的±号是尾数的符号;P称为;V的阶码(通常是整数),即指明小数点的实际位置, P前而的±号是阶码的符号。在计算机中一般浮点数的存放形式如下图所示。在浮点数表示中,尾数的符号和阶码的符号各占一位,阶码是定点整数,阶码的位数决 定了所表示的数的范围,尾数是定点小数,尾数的位数决定了数的梢度。例如:一个二进制8位浮点数如阁1 -18所示,表示的是:-0. 1011 x2_3

推荐信息