> 教育经验 > 什么是编码方法介绍

什么是编码方法介绍

什么是编码方法介绍

编码方法就是把真值转换为机器数的方法。

一个数通过正负符号加上一组数字的集合来表征,在计算机中,数的“+”、“-”符号常用0和1表示,这种符号数字化后按一定规则产生的数称为机器数。机器数代表的实际值称为真值。原码、反码、补码和移码是机器数的基本编码形式。

编码方法二进制数编码

设真值

是一个包括1位符号位的n+1位整数真值(注意:

是符号位);

是一个包括1位符号位的n+1位小数真值(注意:

是符号位)。

显然,x和y的数值部分均为n位。据此,给出二进制数原码、反码、补码、移码的定义。

编码方法原码

整数x和小数y的原码分别定义为:

编码方法反码

整数x和小数y的反码分别定义为:

编码方法补码

整数x和小数y的补码分别定义为:

其中,当x补与x的位数相同时,使用第二个式子;当x补比x少1位时,使用第三个式子。

编码方法移码

整数移码定义为:

其中,当x移与x的位数相同时,使用第一个式子;当x移比x少1位时,使用第二个式子。

编码方法十进制编码

设真值

是一个包括1位符号位的n+1位整数真值(注意:

是符号位);

是一个包括1位符号位的n+1位小数真值(注意:

是符号位)。即,x和y的数值部分均为n位。据此,给出十进制数原码、反码、补码、移码的定义。

编码方法十进制原码

整数x和小数y的十进制原码分别定义为:

编码方法十进制反码

整数x和小数y的十进制反码分别定义为:

编码方法十进制补码

整数x和小数y的十进制补码分别定义为:

其中,当x补与x的位数相同时,使用第二个式子;当x补比x少1位时,使用第三个式子。

编码方法补充说明

①当真值为正数时,原码、反码和补码均为“符号-数值”码,只要将真值的“+”号用“0”取代即可。

②当真值为负数时,原码、反码和补码的数符和数值均由定义直接求出,但在求定义域端点之值时,有时要对结果加以简单处理。其符号是二进制为“1”,十进制为“9”。

③当真值为二进制整数时,移码才有定义移码的数值部分与二进制整数补码完全相同;符号则恰恰相反,即正数时为“1\",负数时为“0\"。

编码方法示例

已知二进制真值x=-0000,求其补码。

解:x共5位:符号位为1位,数值位n为4,则:

x补=

补码基于“同余”概念,此处模为

应丢掉,即最高位应该丢掉,故其结果为00000。该数连同符号位一起共5位数,这就是上述提到的对定义域“端点”之值进行处理的问题。结果说明,在补码系统中,0有唯一的表示,即+0=-0=0。