最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

补码运算的法则

来源:动视网 责编:小OO 时间:2025-09-30 20:59:35
文档

补码运算的法则

补码运算的法则补码运算的法则要在“微机原理”这门课中讲到,在“数字电子技术”课中不作重点,只需一般了解即可。在数字电子技术教科书中,补码部分是用4位或5位2进制数来讲的,所以本文中也多以4、5位二进制数做例子。利用补码运算必须确定运算数的位数,这样才能确定补码的模数。在计算机中,带符号的数的表示方法有3种:原码、补码和移码。本文不讨论移码。一、计算机中数的表示法1.原码对一个二进制数而言,若用最高位表示数的符号(常以“0”表示正数,“1”表示负数),其余各位表示数的本身,则称为二进制数的原码表
推荐度:
导读补码运算的法则补码运算的法则要在“微机原理”这门课中讲到,在“数字电子技术”课中不作重点,只需一般了解即可。在数字电子技术教科书中,补码部分是用4位或5位2进制数来讲的,所以本文中也多以4、5位二进制数做例子。利用补码运算必须确定运算数的位数,这样才能确定补码的模数。在计算机中,带符号的数的表示方法有3种:原码、补码和移码。本文不讨论移码。一、计算机中数的表示法1.原码对一个二进制数而言,若用最高位表示数的符号(常以“0”表示正数,“1”表示负数),其余各位表示数的本身,则称为二进制数的原码表
补码运算的法则

补码运算的法则要在“微机原理”这门课中讲到,在“数字电子技术”课中不作重点,只需一般了解即可。在数字电子技术教科书中,补码部分是用4位或5位2进制数来讲的,所以本文中也多以4、5位二进制数做例子。

利用补码运算必须确定运算数的位数,这样才能确定补码的模数。

在计算机中,带符号的数的表示方法有3种:原码、补码和移码。本文不讨论移码。

一、计算机中数的表示法

1. 原码

对一个二进制数而言,若用最高位表示数的符号(常以“0”表示正数,“1”表示负数),其余各位表示数的本身,则称为二进制数的原码表示法。例如:

设 A = + 1001 , B = - 0101,则[A]原 = 0 1001,[B]原 = 1 0101。[A]原、[B]原分别是A、B的原码,是符号数值化了的数。符号数值化之前的带符号的数A、B称为是“真值”。

2. 补码

(1)补码的定义:

根据同余的概念

X + NK = X ( mod K )      ………………①

括号中的部分不参加运算,它表示“K是模”。N是任意整数。该式的含义是,数X与该数加上其模的任意整倍数之和相等。例如钟表的表盘,模为12,不论指针转了几圈,3点总是3点。用定义式表示,即

3 + N×12 = 3

在①式中,当N=1时

有 [X]补数 = X + K,[X]补数 称为是X的补数。

当  0 ≤ X < K时,[X]补数 = X   (正数的补码是其本身)

当 - K ≤ X < 0 时,[X]补数 = X + K(负数的补码 = X+K =  模-|X|)

例如表盘 模 = 12

当 X = 3 时,[3]补数 = 3 ,其涵义是表针正着转了3 格;

当 X = -3 时,[-3]补数 = -3+12 = 9 ,其含义就是指针倒着转了3格,就等于正着转了9 格。

(因为X< 0  ∴ X+K = 模-|X| )

模 = “在限定的位数中可表示的最大数”加1 。

在计算机中,一个机器数的字长为n位,它能够表示的最大数为n个“1”,其模为2n。例如4位的机器数中,n = 4,可表示的最大数为1111B(1111B表示是一个二进制数),其模就是 1111B + 1 = 1 0000 = 24。

4位二进制数的模是1 0000,即16;而8位二进制数的模是1 0000 0000,即256。

再例如十进制的模是 10 ,十二进制的模是12。

一个二进制数,若以2n为模(n为二进制数的位数,通常与计算机中计其数的长度一致),它的补码叫做2补码,简称补码。即

当  0 ≤ X < 2 n-2时,[X]补 = X 

当 – 2 n-1 ≤ X < 0 时,[X]补 = 2 n + X =2n - | X | ………②

同理,十进制的补码是10,十二进制的补码是12。再利用钟表的例子:

当 X = 3 时,[3]补 = 3;

当 X = -3 时,[-3]补 = -3+12 = 9 。

所以,正数的补码是它本身,负数的补码是负数加上模。

在二进制中,4位二进制数的时候,n = 4 ,根据 ② 式 ,

-1的补码就是:[-1]补 = 2 4 + ( - 1 ) = 1 0000B – 1 = 1111B 

5位二进制数的时候,n = 5 ,根据 ② 式 ,

-1的补码就是:[-1]补 = 2 5 + ( - 1 ) = 1 00000B – 1 = 11111B 

(2)补码的求法

① 根据定义求:

即上述的办法,显然很不方便。

② 保持符号位不变,数值位求反加1:

例如4位二进制数-001,其原码为[1001]原,则其补码为 [1001]补 =1110 + 1 = 1111。式中的1110即为1001的反码,注意符号位——最高位的1不参加求反。

③ 直接求补:

从最低位起,从右至左,到出现第一个1之前(包括第一个1)原码中的数字不变,以后逐位求反,但符号位不变,即可直接得到补码。

例1:求补: n = 4   X = - 1     [- 1]补 = [1 0 0 1]原 = 1111

例2: n = 8   X= - 1110 0000  [X]原 = 11110 0000  [X]补 = 10010 0000

二、补码的运算法则:

1. 

无论正数还是负数,都是先求补,再相加,其和为补码。如果相加之和是正数,则即为所求之和的原码,但是如果结果是负数,还应再求其补码,方能得到和的原码。

运算法则:

[ X ]补 ± [ Y ]补 = [ X±Y ]补

[ [ X ]补]补 = [ X ]原

例1:96-19

算法:X – Y = [ [X]补+ [Y]补 ]补

[X]补 = [X]原 = 0110 0000B    [Y]补 = [Y]原 = 0001 0011B   [-Y]补 = 1110 1101B    

符号位参加运算。

X – Y = [ [X]补+ [Y]补 ]补 = [ 0110 0000B + 1110 1101B ]补 = [ 0100 1101B ]补 = 0100 1101B

[X-Y]补 = [X-Y]原 = 0100 1101B = +77    

例2: (-56)-(-17)=(-56)+17  

[X]原 = 1011 1000B

[X]补 = 1100 1000B

[Y]原 = 1001 0001B   

[Y]补 = 1110 1111B    

[ - Y ]补 = 0001 0001B    

(-56)-(-17)=[[-56]补 + [17]补 ]补 = [ 1100 1000 + 0001 0001 ]补 = [ 1101 1001B ]补 

[X-Y]原 = [ [X-Y]补]补 = [ 1101 1001]补 = 1010 0111B = -39    

2. 有关0的问题

原码中,+0 = - 0 = 0

补码中 0000 = 0    1000B = - 8,没有-0

3. 例  -1 -1

根据书上P8的例子,假如是5位机器数。

[-1]补 = [1 0001]补 = 1 1111

-1-1=[-1]补 + [-1]补

最高位的1溢出,不计,[ -1 ]补 + [ -1 ]补 = 1 1110

因为结果是负值,所以不等于原码,应再求一次补

-1-1=[1 1110]补 = 1 0010 = - 2

文档

补码运算的法则

补码运算的法则补码运算的法则要在“微机原理”这门课中讲到,在“数字电子技术”课中不作重点,只需一般了解即可。在数字电子技术教科书中,补码部分是用4位或5位2进制数来讲的,所以本文中也多以4、5位二进制数做例子。利用补码运算必须确定运算数的位数,这样才能确定补码的模数。在计算机中,带符号的数的表示方法有3种:原码、补码和移码。本文不讨论移码。一、计算机中数的表示法1.原码对一个二进制数而言,若用最高位表示数的符号(常以“0”表示正数,“1”表示负数),其余各位表示数的本身,则称为二进制数的原码表
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top