标题: 单片机hx711驱动程序 count=count^0x800000不理解 [打印本页]

作者: 水月sy    时间: 2020-12-18 17:39
标题: 单片机hx711驱动程序 count=count^0x800000不理解
在hx711里读出24位的数据count后,为什么还要count=count^0x800000,这句语句是什么作用,一直搞不清楚。

作者: 沧浪    时间: 2020-12-18 21:28
https://blog.csdn.net/yanjinxu/article/details/47861323 我也今天下午刚看到这个传感器,这里搞不懂。这个博客讲的挺好的
作者: 水月sy    时间: 2020-12-21 09:10
沧浪 发表于 2020-12-18 21:28
https://blog.csdn.net/yanjinxu/article/details/47861323 我也今天下午刚看到这个传感器,这里搞不懂。这 ...

好的,太感谢了
作者: zhaobolove    时间: 2020-12-21 09:54
以为读取的值, 最高位是符号位,  异或即“两个输入相同时为0,不同则为1”,  
这样 最高位是1, 表示负值,  与1异或后变成0,
正常 最高位是0, 正值范围,  与1异或后变成1,
而其他位, 如果是0异或后为0, 如果是1异或后变成1, 相当于没有变.
这样 做的效果是:  数据会一直往上增长,我们可以直接拿来进行使用, 不用受符号位影响
作者: 水月sy    时间: 2020-12-21 17:17
zhaobolove 发表于 2020-12-21 09:54
以为读取的值, 最高位是符号位,  异或即“两个输入相同时为0,不同则为1”,  
这样 最高位是1, 表示负值,  ...

但是最高位是0的时候不是正数吗,异或后就变成了1,这样有什么意义。
作者: glinfei    时间: 2020-12-21 20:19
水月sy 发表于 2020-12-21 17:17
但是最高位是0的时候不是正数吗,异或后就变成了1,这样有什么意义。

我也觉得没必要
作者: 陈星运    时间: 2022-6-4 09:30
zhaobolove 发表于 2020-12-21 09:54
以为读取的值, 最高位是符号位,  异或即“两个输入相同时为0,不同则为1”,  
这样 最高位是1, 表示负值,  ...

强啊哥哥,如果一开始没有重物时是正数也可以不用这么跟0x800000异或




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1