标题: 这255为啥要减得到的值 value0 = 255-(uint)GetADCResult(0); [打印本页]

作者: 胖伟    时间: 2019-11-9 16:04
标题: 这255为啥要减得到的值 value0 = 255-(uint)GetADCResult(0);
如题



作者: csmyldl    时间: 2019-11-9 17:42
进行求补运算,因为读出的值是补码
作者: bh2030693    时间: 2019-11-9 17:49
value0 = 255 - (uchar)GetADCResult(0);
假如是上面这样就很好理解了。
因为uchar类型值的范围是0~255, 255减一个数就相当于那个数取反。
等同于下面的表达式:
value0 = ~(uchar)GetADCResult(0);

GetADCResult(0)的返回值转换成uchar类型,假如是0,取反后就是255;假如是255,取反后就是0;假如是128,取反后就是127.

但是你的公式是(uint)类型,这个就有点费解了,还得根据上下文内容去判断了。


作者: 胖伟    时间: 2019-11-11 11:02
bh2030693 发表于 2019-11-9 17:49
value0 = 255 - (uchar)GetADCResult(0);
假如是上面这样就很好理解了。
因为uchar类型值的范围是0~255,  ...

感谢回复
作者: 胖伟    时间: 2019-11-11 11:03
csmyldl 发表于 2019-11-9 17:42
进行求补运算,因为读出的值是补码

感谢回复




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