编码方法

更新时间:2024-07-03 18:39

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

二进制数编码

设真值 是一个包括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”。

示例

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

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

x补=

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

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}