rtklib吧 关注:267贴子:456
  • 2回复贴,共1

源码里getbits函数的问题

只看楼主收藏回复

源码在getbits函数里有一句
if (len<=0||32<=len||!(bits&(1u<<(len-1)))) return (int)bits;
return (int)(bits|(~0u<<len));
当最高位为1时,返回值取负,源码取负操作是高位全补成1,这样补1并不能对数据取负,计算机里取负操作是
a=~a+1,即取反再加1,源码这么做并不能取负,但是计算结果是对的,为什么?


1楼2018-04-10 17:33回复
    当时我研究过这个解码函数,有符号这个确实比较难理解,但是结果又是对的


    IP属地:湖北2楼2018-04-26 19:30
    收起回复