最新二进制数的补码运算(经典)
- 格式:doc
- 大小:10.00 KB
- 文档页数:1
二进制数的补码运算
二进制数的补码运算法则:
加法法则: 0+0=0; 0+1=1; 1+0=1; 1+1=10;
减法法则: 0-0=0; 0-1=11; 1-0=1; 1-1=0;
加法运算:
11010+10111=110001
1+1=10,本位记0,向高位进1.
减法运算:
11000-10001=111
被减数不够减,向高位借1。1当2,2-1=1。
二进制数的补码运算
二进制数的补码运算法则:
加法法则: 0+0=0; 0+1=1; 1+0=1; 1+1=10;
减法法则: 0-0=0; 0-1=11; 1-0=1; 1-1=0;
加法运算:
11010+10111=110001
1+1=10,本位记0,向高位进1.
减法运算:
11000-10001=111
被减数不够减,向高位借1。1当2,2-1=1。
- 1 - 补码扩展规则
补码扩展规则是指在进行补码运算时,对于二进制数的符号位进行扩展的一种规则。在补码运算中,为了使负数的加减法可以和正数一样进行运算,需要将二进制数的符号位(最高位)设定为1表示负数。而在进行扩展操作时,需要将符号位的1进行扩展,填充到高位上,以保证计算的正确性。
具体来说,在进行补码扩展时,可以分为两种情况:
1.正数补码扩展:对于一个正数,其符号位为0,不需要进行扩展操作。例如,对于二进制数0011,其补码为0011,不需要进行扩展操作。
2.负数补码扩展:对于一个负数,其符号位为1,需要进行扩展操作。扩展操作的具体步骤为将符号位的1进行扩展,填充到高位上。例如,对于二进制数1100,其补码为11100,需要在前面填充一个1,使其成为111100,才能进行计算。
总之,在进行补码运算时,需要注意符号位的扩展规则,以保证计算的正确性。
二进制数据的表示法
二进制数据也是采纳位置,其是以2为底的。例如二进制数据110.11,逢2进1,其权的大小顺序为22、21、20、2-1、2-2。关于有n位整数,m位小数的二进制数据用加权系数展开式表示,可写为:
(a(n-1)a(n-2)...a0...a(-m))2
=a(n-1) * 2 (n-1)+ a(n-2) *2(n-2) + ...a * 2(0)...+a(-m)* 2(-m)
二进制数据一样可写为:(a(n-1)a(n-2)…a(1)a(0).a(-1)a(-2)…a(-m))2。
注意:
1.式中aj表示第j位的系数,它为0和1中的某一个数。
2.a(n-1)中的(n-1)为,输入法无法打出因此用括号括住,幸免混淆。
3.2^2表示2的平方,以此类推。
【例1102】将二进制数据111.01写成加权系数的形式。
解:(111.01)2=(1×2^2)+(1×2^1)+(1×2^0)+(0×2^-1)+(1×2^-2)
二进制和,八进制一样,都以二的幂来进位的。
二进制运算
二进制数据的的大体规律和数的运算十分相似。最经常使用的是加法运算和运算。
1.二进制加法运算
有四种情形: 0+0=0 0+1=1 1+0=1 1+1=10 ps:0 进位为1
【例1103】求 (1101)2+(1011)2 的和
解: 1 1 0 1
+1 0 1 1
------------------- 1 1 0 0 0
2.二进制乘法运算
有四种情形: 0×0=0 1×0=0 0×1=0 1×1=1
【例1104】求 (1110)2 乘(101)2 之积
解: 1 1 1 0
× 1 0 1
补码(two's complement)
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值位统一处理;同时,加法和减法也可以统一处理。此外,补码与原码的的相互转换,其运算过程是相同的,不需要额外的硬件电路。
补码的特性
1、一个整数(或原码)与其补数(或补码)相加,和为模。
2、对一个整数的补码再求补码,等于该整数自身。
3、补码的正零与负零表示方法相同。
机器数:计算机中参与运算的数被称为机器数,有以下特点,
1、计算机中参与运算的数均为二进制数,这是因为,运算电路是由只能识别“0”、“1”的数字电路组成。
2、机器数有带符号数和无符号数两种。
3、带符号的机器数有源码、反码和补码三种表示方式;无符号数没有源码、反码、补码的区别。
4、CPU的运算电路是按补码的运算规律设计,因此,进行运算的带符号数均用补码表示。
无符号数的运算
1、与手工二进制运算的方法相同(指运算电路)。
2、可以用十六进制数的运算代替二进制数的运算,计算时不容易出错,而且快捷。
源码表示法(带符号数)
1、正数。最高位是符号位,用“0”表示正号,即15~0位的第15位为0,7~0位的第7位为0。
2、负数。最高位是符号位,用“1”表示负号,即15~0位的第15位为1,7~0位的第7位为1。
3、求源码的方法:先将真值转换成二进制数,再写成固定的8位或16位,最高位用“0”或“1”表示数的正号和负号。计算机就是用这种方法表示。
真值就是带符号的十进制数(补码的绝对值),如+20、-20、+120、-120。
在计算机内,如果是一个二进制数,其最左边的位是1,则我们可以判定它为负数,并且是用补码表示。若要得到一个负二进制补码的真值(原来的数值),只要对其求补码,就可得到真值。
【例5】-65的补码是10111111
若直接将10111111转换成十进制,发现结果并不是-65,而是191。
(注意:理解的彻底这里)
二进制数的原码、反码及补码表示
1、机器数与真值
机器数:数在机器中的编码表示。
真 值:一般书写表示的数。
机器数中,数值和符号完全数字化。计算机在进行数字运算时,采用把各种符号位和数字位一起编码的方法。常见的有原码、反码及补码表示法。
2、原码表示法
原码表示法是机器数的一种简单表示法。其符号位用0表示正数,用1表示负数,数值一般用二进制形式表示。
[x]原=符号位+绝对值
若x=+1100110 则 [x]原=01100110
x= -1100110 [x]原=11100110
(说明:其实就是把符号+-改为01)
所以用8位二进制数来表示整数原码时,其表示范围:
最大数:01111111,为(+127)D
最小数:11111111,为(-127)D
思考:0的原码有两种表示形式!!
3、反码表示法
机器数的反码可由原码得到。如果机器数是正数,则机器数的反码与原码一致;
若机器数是负数,则机器数的反码是它的原码(符号位除外)的各位取反而得到。即:
正数:[x]反=[x]原
负数:[x]反=对[x]原除符号外的各位取反
若x=+1100110 则[x]反=01100110
x= -1100110 [x]反=10011001
4、补码表示法
机器数的补码也可由原码得到。如果机器数是正数,则机器数的反码与原码一致;若机器数是负数,则机器数的反码是它的原码(符号位除外)的各位取反,并在末位加1而得到。即:反码是作为求补码的中间过程。
正数:[x]补=[x]原
负数:[x]补=[x]反+1
若x=+1100110 则[x]补=01100110
x= -1100110 [x]补=10011010
注意:补码的0只有一种表示形式!
[+0]原=00000000 [-0]原=10000000
[+0]反=00000000 [-0]反=11111111