谁有强殖装甲第二部,可以Q我460054868
这是什么东东,8位的二进制小数的小数点前面是符号位,0代表是正,"-" 这个是什么
关于机器如何表示数,有一套完整的方法。如果脱离机器的实现而谈数如何表示是没有意义的。简单的说,整数与小数的实现是不一样的,不仅表示不一样,而且做操作时用的部件也不一样。不包括负数的整数可以用unsign数的方式实现,包括正数和负数以及0的整数可以用许多方法实现,最常用的是2的补码的形式。所以就有了教材上讲的那套规则。而小数在有浮点处理单元的机器上是按Ieee浮点格式实现,和整数的方法完全不一样。对于没有浮点单元的机器,如MCU,定点DSP可以用定标的方式实现。即你把一组本来用来表示整数的法则映射到小数,机器中二进制的结果就按照你映射的规则来解释。
假设一个3位的机器,实现无符号整数:
注意到最高位的0和1不具有符号的意义,它最多能表示这个数是大于最大值的一半,还是小于最大值的一半。
(不是所有的机器都实现无符号数,因为有时候不是必须的)
假设一个3位的机器,用二的补码实现无整数:
注意到:
1)正数与负数的个数不同;
2)把从000到011搬到100前面去,就和无符号数的二进制排列相同了;
3)正数与负数以000为中心线对称,但它们的二进制值正好满足2的补码的关系。
如001取反得110加1得111等。
4)二进制的最高位上的0和1正好和正负号对应,所以有了符号位的意义。
5)采用这种解释(2的补码表示负数)的最大优点是可以用加法表示减法,而节省硬件,如:
2-1=2+(-1)=010+111=(1)001=1,最高位去掉了;
1-2=1+(-2)=001+110=111=-1也同样正确。
把这套数解释为小数,如把最大值解释为-2,则有:
也可以把这套数最大值解释为-1
关于浮点数的处理方法,可以查到很多书。
还有问题的话,可以发邮件到aidai2000@gmail.com
我不再在这里回贴了。
[此贴子已经被作者于2006-10-14 17:15:31编辑过]