普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 3819|回复: 3

DS18B20里问题

[复制链接]

3

主题

9

帖子

57

积分

注册会员

Rank: 2

积分
57
发表于 2020-3-31 15:41:13 | 显示全部楼层 |阅读模式
1金钱
uchar dat, bi;
dat>>=1;
dat=(bi<<7)|dat;

uchar dat, bi;
dat=(bi<<7)|(dat>>1);
有什么区别?实际程序中能不能互相代替?我在DS18B20里面发现两者不能互换

我知道答案 本帖寻求最佳答案回答被采纳后将获得系统奖励10 金钱 , 目前已有3人回答

回复

使用道具 举报

1

主题

11

帖子

34

积分

新手上路

Rank: 1

积分
34
发表于 2020-3-31 18:12:45 | 显示全部楼层
假定dat为0x10,(dat>>1)的值为0x08,没有(dat>>1)值还是0x10;你还觉得能代替吗?
回复

使用道具 举报

3

主题

9

帖子

57

积分

注册会员

Rank: 2

积分
57
 楼主| 发表于 2020-4-1 13:54:55 | 显示全部楼层
同化 发表于 2020-3-31 18:12
假定dat为0x10,(dat>>1)的值为0x08,没有(dat>>1)值还是0x10;你还觉得能代替吗?

在dat>>=1;
dat=(bi<<7)|dat;

uchar dat, bi;
dat=(bi<<7)|(dat>>1);当中实际上第一个dat>>=1;
dat=(bi<<7)|dat;虽然比后面一个多dat>>=1;但是你注意看uchar dat, bi
dat=(bi<<7)|(dat>>1);实际已经包含dat>>=1这条语句了。我的问题答案自己找到了,谢谢你的回答
回复

使用道具 举报

1

主题

11

帖子

34

积分

新手上路

Rank: 1

积分
34
发表于 2020-4-1 14:24:30 | 显示全部楼层
zhx8261022 发表于 2020-4-1 13:54
在dat>>=1;
dat=(bi=1;
dat=(bi=1;但是你注意看uchar dat, bi

uchar dat, bi;
dat>>=1;//没注意到这里
dat=(bi<<7)|dat;

uchar dat, bi;
dat=(bi<<7)|(dat>>1);
有什么区别?实际程序中能不能互相代替?我在DS18B20里面发现两者不能互换
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-26 15:14 , Processed in 0.083140 second(s), 32 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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