计算机数值数据的编码

作者:神奇的周 | 创建时间: 2023-07-11
数值型数据有大小、正负之分,能够进行算术运算,如552、-345. 17、1/3等。如何 用“0”、“1”描述正负号、小数点等问题呢?在计算机内将数值型数据全面、完整地表示 成一个二进制数(机器数),应该考虑4个因素:机器数的范围、机器数的...
计算机数值数据的编码

操作方法

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

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

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

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

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

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

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

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

点击展开全文

更多推荐