减法我都不会算了 点击:417 | 回复:8



芳季

    
  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2018-08-14 15:43:35
楼主

有一个16位的D(或者32位。以下以16位好说明一点)在增加或者在减小。

当前值是A,上次值是B,我要求当前的增量,要怎么算?

比如当前是0,上次是32767,那么实际上这个寄存器只增加了1。因为正最大值加1等于0。

又如果当前是0,上次是-32768,……

这个D值的来源其实是一个高速计数器。

当前值和上次值之间相差不会超过绝对值2^29。这个算法要怎么算才可以满足任何范围内两次的增量值。




乖乖小笨熊

  • 精华:2帖
  • 求助:0帖
  • 帖子:1200帖 | 11283回
  • 年度积分:2326
  • 历史总积分:62523
  • 注册:2006年8月05日
发表于:2018-08-14 23:14:37
1楼

32767在16位数据里面加一就是“-32768”而不是“0”


2018.JPG

zjy3411

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 17回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2018-08-15 08:10:26
2楼

是“0”,這明顯是unsigned int

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2018-08-15 08:42:00
3楼

16位32位都得不到我要的结果。

我要的结果是“0-32767=1”

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2018-08-15 09:44:28
4楼

未命名.JPG

这个程序为何D4会有值?

winter938

  • 精华:1帖
  • 求助:0帖
  • 帖子:55帖 | 945回
  • 年度积分:0
  • 历史总积分:3418
  • 注册:2005年6月12日
发表于:2018-11-28 09:39:43
5楼

楼主的这个问题请参考这个链接:http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1421167&b_id=3&s_id=1&num=12#anch

历史都有惊人的相似之处,呵呵

gk2017

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 67回
  • 年度积分:0
  • 历史总积分:60
  • 注册:2018年9月08日
发表于:2018-11-28 22:48:28
6楼

谢谢正好需要顺便赚积分 谢谢正好需要顺便赚积分 谢谢正好需要顺便赚积分


芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2018-12-06 14:45:10
7楼


回复内容:

对: winter938 楼主的这个问题请参考这个链接:http://www.a... 内容的回复!

-------------------------

这,看完了我都是没有解决问题啊。

碧海_80

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 134回
  • 年度积分:0
  • 历史总积分:239
  • 注册:2002年1月06日
发表于:2018-12-25 23:41:19
8楼

先把数值取绝对值,2值相减再取绝对值,就变成正的相差值


热门招聘
相关主题

官方公众号

智造工程师