2013-09-08 伟的学习笔记

为什么补码要加1

 补码加1  再加原码等于 1000  0000  ,如果不加1的话,那么补码加原码等于0111  1111  这样只要负数的加减不超过0还是一样行的通  能算,但是不加1的情况下,比如-10补码变成1111  0101   那-10加10的话   变成1111  1111   结果是-0  行得通    但是到-10加11的时候结果还是0   问题就开始出现了     关键就是1000  0000这个数既代表0同时又代表一次正负号的切换   而正负号的切换正好是从0开始 ,而不加1情况下   补码加原码等于0111   1111是已经等于0   后面再加到切换正负号时  又一次等于0  等于这条函数图  不是连贯 是有重叠的    
 
正负浮点数,除了符号位,其他位都一样的。
 
 
---------------------------------------------------------------------------------------------
 +-+----------+---------------------------------
  0  10000001 00000000000000000000000
--------------------------------------------------
第一部分是符号位,第二部分是指数部分,第三部分是尾数部分  

指数部分 10000001 =》 十进制 129 实际上存储指数部分的时候有进行一次叫做移位(指数也有正负之分) ,他在保存成二进制的时候有进行一次+127的动作,所以我们在从二进制还原回来的时候就要减去127 ,所以指数部分是2
那个尾数部分位00000000000000000000,因为规定尾数的整数部分恒位1,所以实际上的尾数部分位1.000000000000000000000,
然后与指数部分进行移位,往右移动2两位变成100.00000000000 实际上就是4了。

posted @ 2013-09-08 12:58  yumuxu  阅读(199)  评论(0编辑  收藏  举报