原码反码补码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.原码表示法

(1)整数原码的定义为:

式中x为真值,n为整数的位数。

小数原码的定义为

注:正数的原码是把符号位改为‘0’,负数的原码把符号位改为‘1’即可。

例:当x=+0.1101时,[x]原=0.1101

当x=-0.1101时,[x]原=1-(-0.1101)=1.1101

(2)原码的表数范围。

对于定点整数:

一个n+1位原码能表示的最大正数为01…11,即2n-1;能表示的最小数为绝对值最大的负数111…1,即-(2n-1)。所以原码能表示的数值范围为: -(2n-1) ≤ x≤ 2n-1。

例:字长为8位的定点整数,x的原码的表示范围为(-127 ,127).

对于定点小数:

一个n+1位定点小数原码能表示的最大正数为0.1…11,即1-2-n;能表示的最小数为绝对值最大的负数为1.11…1,即-(1-2-n)。定点小数原码的数值范围为: -(1-2-n) ≤ x≤ 1-2-n。

2.反码表示法

例:正数的反码和原码一样,负数的反码把原码除符号位以外的所有位取反。

例:字长为8位的定点整数,x的反码的表示范围为(-127 ,127).

3.补码表示法

(1)整数补码的定义为:

式中x为真值,n为整数的位数。

小数补码的定义为

注:正数的补码是和原码相同,负数的补码把原码除符号位以外的所有为取反(反码),再加‘1’

例:当x=+0.1101时,[x]原=0.1101,[x]补=0.1101

当x=-0.1101时,[x]原=1.1101,[x]补=1.0010+1=1.0011

[x]补=2+x=10.0000-0.1101=1.0011

(2)补码的表数范围。一个n+1位整数补码能表示的最大数是011…1,即2n-1;能表示的最小数为100…0,即-2n。所以它能表示的数值范围是:-2n≤ x≤ 2n-1

例:字长为8位的定点整数,x的补码的表示范围为(-128 ,127).

一个n+1位小数补码能表示的最大数是0.11…1,即1-2-n;能表示的最小数为1.00… 0,即-1。所以它能表示的数值范围是:-1≤ x ≤ 1-2-n

例:字长为8位的定点小数,x的补码的表示范围为(-1,1-1/128). 4.移码表示法

(1)整数移码的定义为:

[x]移=2n+x (2n>x≥-2n) 式中x为真值,n为整数的位数。注:移码就是把真值的补码的符号位取反,即将补码的符号位由“0”改为“1”,或从“1”改为“0”

例:当x=+0.1101时,[x]原=0.1101,[x]补=0.1101,[x]移=1.1101 当x=-0.1101时,[x]原=1.1101,[x]补=1.0011,[x]移=0.0011 (2)移码的表示的数值范围与补码能表示数值范围相同是:-2n≤ x≤2n-1

例:字长为8位的定点整数,x的移码的表示范围为(-128 ,127). 例:“0”的原码、反码、补码表示法。

①[+0.0000]原=0.0000

[-0.0000]原=1-(0.0000)=1.0000

② [+0.0000]反=0.0000

[-0.0000]反=(10.0000-0.0001)-0.0000=1.1111

③[+0.0000]补=0.0000

[-0.0000]补=2+(-0.0000)=10.0000-0.0000=0.0000

④[+0]移=1,0000

[-0]移=1,0000

可见‘0’的原码和反码有两种表示形式,而补码、移码表示的零惟一。

注:真值、原码、反码、补码、移码等间的相互转化

正数的原码是把真值的符号位改为‘0’,负数的原码把符号位改为‘1’。

正数的反码、补码和原码一样,移码是把符号位改为相反数。负数的反码转为原码:把除符号位以外的所有位取反。

负数的补码转为原码:把除符号位以外的所有位取反,所得的真值,再减1。或者,把补码减一,然后将除符号位以外的所有位取反即可。

相关文档
最新文档