芳季
有一个16位的D(或者32位。以下以16位好说明一点)在增加或者在减小。
当前值是A,上次值是B,我要求当前的增量,要怎么算?
比如当前是0,上次是32767,那么实际上这个寄存器只增加了1。因为正最大值加1等于0。
又如果当前是0,上次是-32768,……
这个D值的来源其实是一个高速计数器。
当前值和上次值之间相差不会超过绝对值2^29。这个算法要怎么算才可以满足任何范围内两次的增量值。
乖乖小笨熊
32767在16位数据里面加一就是“-32768”而不是“0”
zjy3411
是“0”,這明顯是unsigned int
16位32位都得不到我要的结果。
我要的结果是“0-32767=1”
这个程序为何D4会有值?
winter938
楼主的这个问题请参考这个链接:http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1421167&b_id=3&s_id=1&num=12#anch
历史都有惊人的相似之处,呵呵
gk2017
谢谢正好需要顺便赚积分 谢谢正好需要顺便赚积分 谢谢正好需要顺便赚积分
回复内容:
对: winter938 楼主的这个问题请参考这个链接:http://www.a... 内容的回复!
-------------------------
这,看完了我都是没有解决问题啊。
碧海_80
先把数值取绝对值,2值相减再取绝对值,就变成正的相差值