【问题标题】:Dividing a 16 bit number by 2 [PIC microcontroller]将 16 位数除以 2 [PIC 单片机]
【发布时间】:2012-11-26 03:19:12
【问题描述】:

如果将 16 位值存储为(在 pic 微控制器中)作为高字节和低字节,您如何将它们除以 2?一个16位的数字怎么能右旋?

谢谢。

【问题讨论】:

  • 抱歉,我刚刚编辑了我的帖子。是的,它可以向右旋转,但我不知道旋转 16 位数字。

标签: pic


【解决方案1】:

将 16 位数字除以 2 相当于将数字右移一位*。清除进位标志,通过进位将高字节右移,然后通过进位将低字节右移。你可以找到它的代码here:

LSR16   MACRO   VAR16
    BCF     STATUS, C       ; Clear carry
    RRF     (VAR16)+1,F     ; Rotate high byte right
    RRF     (VAR16),F       ; Rotate low byte right
    ENDM


* 当然这是整数除法:当奇数除以二时,0.5 被截断。

【讨论】:

  • 非常感谢。如果有任何问题,我会尝试回复。
  • 如果舍入很重要,您可以添加进位位。你也必须把它带到更高的字节。
猜你喜欢
  • 2014-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多