01.补码

1.求补

0~0xFF一共256个数,此范围定义为表达范围,对于一个数A,找出另一个数B,使得 A+B==0,进位忽略不管。对A求补定义为neg(A),求补的速算是“取反加一”

例如:

0011 1100

+     1100 0011

----------------------

     10000 0000(进位不管,结果为0

 

2.求补性质

A < 0,则neg(A) > 0

A > 0,则neg(A) < 0

A = 0,则neg(A) = 0

 

3.补码表示数字时,如果为负数,则转化为补码后保存,例如:

A - B

=A + neg(B)

 

4.乘法示例:

A * 10110b

= A * (10000b + 100b + 10b)

=A<<4 + A<<2 +A<<1

 

5.除法示例:

 A / c

=A * (1/c)

=A * (2^n / C) * (1 / 2^n)

=(A * (2^n / C) )>>n

 

此处2^n可以换成3^n4^n10^n

 

6.减法示例:

A - B

=A+ (100h - B) - 100h

=A+ neg(B) - 100h

=A+ ~B + 1 - 100h

=A+ ~B + 1 (进位丢失)

posted @ 2020-03-31 22:07  八转达人  阅读(239)  评论(0编辑  收藏  举报