在补码编码中
[0]=(0000)
[1]=(0001)
[2]=(0010)
[3]=(0011)
[4]=(0100)
[5]=(0101)
[6]=(0110)
[7]=(0111)
[-1]=(1111)
[-2]=(1110)
[-3]=(1101)
[-4]=(1100)
[-5]=(1011)
[-6]=(1010)
[-7]=(1001)
[-8]=(1000)
为什么不编码成
<0>=(0000)
<-1>=(0001)
<-2>=(0010)
<-3>=(0011)
<-4>=(0100)
<-5>=(0101)
<-6>=(0110)
<-7>=(0111)
以+<-x>=<0>定义呢?
新的编码方式
非负整数编码成(0000)~(0111)
正整数编码以+<-x>=<0>定义
减法可以转换成加法
-=-+<0>=+(<0>-)=+<-y>
对任何整数x与y有+=
(i)如果x<0,y<0,+=
(ii)如果x>0,y<0,x+y<0,+=+<(x+y)+(-x)>=++<-x>=(i)
(iii)如果x>0,y<0,x+y>0,+=+<(x+y)+(-x)>=++<-x>=(ii)
(iiii)如果x>0,y>0,+=+<(x+y)+(-x)>=++<-x>=(iii)
也可以
+=[-x]+[-y]=[-(x+y)]=
[x]+[y]=<-x>+<-y>=<-(x+y)>=[x+y]
阅读(1837) | 评论(0) | 转发(0) |