• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

keil中C语言运行解释

676d355b4883e879 2019-02-01 浏览量:1090

aaa.jpg


帮忙通俗易懂的解释下是如何分8次移位和赋值的。。。尽量举个例子一步一步来解释,感谢帮忙大佬

1 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • for循环共循环8次,temp共向右移动8次,也就是把8位数据全部移动,第一个if语句满足条件时为置清零1位,0X7F二进制为0111 1111按位与运算遇到0就为0,所以低7位的数值取决于原来的数据,第八位清零。第二个if语句满足条件时为置位1位,0X80二进制为1000 0000按位或运算遇到1就为1,所以低7位的数值取决于原来的数据,第八位置位。
    • 发布于 2019-02-01
    • 举报
    • 评论 1
    • 0
    • 0
676d355b4883e879 回复了 牛妞小小:嗯嗯,我搞明白了 回复

其他答案 数量:9
  • FOR循环8次啊   每次移位啊
    • 发布于2019-02-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 先左移一位,判断数据在420和620之间就把最高位写0,如果是1300-1800就在最高位写1,一共循环8次,正好一个字节

    其实判断420-620的那个语句是多余的,因为其他值最高位也是0,temp初始就写0就可以了,这个if判断就可以不用

    • 发布于2019-02-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 因为这个是局部程序不好分析,

    其中HightTime是一个控制参数,temp应该在外围有赋值。

    然后这里其实是如果HightTime符合 >1300 && < 1800

    则最后temp会变成0xFF,

    其他的,HightTime符合 >420 && < 630 这里没有意义(除非循环时HightTime会变化)

    则最后temp变成0x00,

    • 发布于2019-02-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个HighTime变量的含义需要看一下,剩下的就是简单的移位操作,没什么特殊的
    • 发布于2019-02-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 通过for循环实现移位操作,然后后面的两个判断根据HighTime值来取高位,或者是清除高位。
    • 发布于2019-02-22
    • 举报
    • 评论 0
    • 0
    • 0

  • >>就是每次将一个八位数右移一次,右移之后再做相应的位赋值运算而已,没什么特别。
    • 发布于2019-02-24
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以使用循环来移位操作计算
    • 发布于2019-02-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 8 bit 需要移位来获取每一位的数据,然后一位一位发送
    • 发布于2019-02-26
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

keil中C语言运行解释