找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2843|回复: 11
打印 上一主题 下一主题
收起左侧

关于C语言按位与

  [复制链接]
跳转到指定楼层
楼主
ID:855539 发表于 2020-12-19 11:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
        DSIO = addr & 0x01 ;//数据从低位开始传送
                addr >>= 1;
         和
DSIO = addr  ;//数据从低位开始传送
                addr >>= 1;
    有什么区别
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

来自 6#
ID:235200 发表于 2020-12-19 18:40 | 只看该作者
梁美胜 发表于 2020-12-19 16:43
DSIO = addr;怎么判断传给DSIO的值是什么

假设addr=0xff,则addr&0x01=0xff&0x01(即保留0xff最低位)=0x01,其值为1,若addr=0xfe,则addr&0x01=0xfe&0x01(即保留0xfe最低位)=0x00,其值为0
回复

使用道具 举报

沙发
ID:235200 发表于 2020-12-19 15:48 | 只看该作者
前者保证DSIO上的值是0或1,而后者输出给DSIO的值可能不是0或1,要看DSIO是如何定义的

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:855539 发表于 2020-12-19 16:43 | 只看该作者
csmyldl 发表于 2020-12-19 15:48
前者保证DSIO上的值是0或1,而后者输出给DSIO的值可能不是0或1,要看DSIO是如何定义的

DSIO = addr;怎么判断传给DSIO的值是什么
回复

使用道具 举报

地板
ID:863521 发表于 2020-12-19 17:13 | 只看该作者
可以通过指针来解决
回复

使用道具 举报

5#
ID:382454 发表于 2020-12-19 17:34 | 只看该作者
相与的,是零,则一定是0
回复

使用道具 举报

7#
ID:854457 发表于 2020-12-19 19:01 | 只看该作者
串口通信经常用到按位与来判断高低电平,要规定高定平即与上0x80或0x01,看你从高位传还是低位传了

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

8#
ID:863572 发表于 2020-12-19 19:57 | 只看该作者
前者按位传送,后者整个字节传送

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

9#
ID:863572 发表于 2020-12-19 19:58 | 只看该作者
csmyldl 发表于 2020-12-19 15:48
前者保证DSIO上的值是0或1,而后者输出给DSIO的值可能不是0或1,要看DSIO是如何定义的

这个说法是最正确的。
回复

使用道具 举报

10#
ID:864028 发表于 2020-12-20 16:35 | 只看该作者
前者输出十六进制数addr的最后一位,后者输出addr
回复

使用道具 举报

11#
ID:212797 发表于 2020-12-20 17:07 | 只看该作者
DSIO = addr & 0x01表示的是DSIO只取addr的最低位,即 DSIO值必定为0或者1;
DSIO = addr表示的是把addr的整个值给DSIO了,如果DSIO和addr类型相同,DSIO的值等于addr;
回复

使用道具 举报

12#
ID:213173 发表于 2020-12-20 21:40 | 只看该作者
梁美胜 发表于 2020-12-19 16:43
DSIO = addr;怎么判断传给DSIO的值是什么

DSIO是位变量,只有0和1两个状态。addr是一个字节变量,数据范围0~255。
DSIO = addr & 0x01 ;是把addr最低位赋值于DSIO。
如果写成DSIO = addr;就会使得addr除0x00以外的任意数都会赋值DSIO为1而出错。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表