补数

补数

目录导航

补数的概念

在日常生活中,常常会遇到补数的概念,例如时钟指示为六点,想要它指向三点,可以按顺时针方向将分针转九格,也可以逆时针方向转三格,结果是一致的。由于时针转一圈为12小时,而其中12在时钟里是不被显示而自动丢失的,即15-12=3,15点和三点在时钟表示上是一致的。想想一下,在时钟这个问题上,任何时候时针向顺时针转九格和逆时针转三格的效果都是一致的,我们将方向定位正负,即-3与+9等价。而数学上称12为模写作(mod 12),而称+9是-3以12为模的补数记为

-3+9(mod 12)

-4+8(mod 12)

-5+7(mod 12)

【以上截取自《计算机组成原理·第二版》唐朔飞著p221】

可以将模理解为一个足够大的正数,足够大到比你运算所有数字的绝对值都要大。

结论:(在模确定的情况下)

一个负数可用它的正补数来代替,而这个正补数可以用模加上负数本身来得到。

一个正数和一个负数互为补数时,两数的绝对值之和为模

正数的补数为其自身。

计算机科学中的应用

计算机科学中,补数的最大应用点为,在处理加法和减法中,不会因为数字的正负使用不同的计算方式。只要一种加法电路就可以处理各种有符号数加法,而且减法可以用一个数加上另一个数的补数来表示,因此只要有加法电路及补数电路即可完成各种有符号数的加法及减法,电路设计上相当方便。

关于补码

补数在计算机中被称为补码(在港台被称为二补数)

有符号的二进制数的补码运算方法为:

正数:补码为其本身

负数:除符号位外,所有位取反(即原码的反码),然后+1(简称为求反加一)。

如:-1101 的补码为

1. -1101的原码为 11101(第一位为符号位)

-1101的反码为 10010(第一位为符号位)

-1101的补码为 10011(第一位为符号位)

整数的补码定义

[x]补={ 0,x|( 2^n >x >=0)}和{ 2^(n+1)+x|(0>x>=-2^n)(mod 2^(n+1))}

相关百科
返回顶部
产品求购 求购