为什么k=(k<<1)|sda是sda放到低位而dat |= 0x80是dat放到高位?(前提,sda和dat都是一位数据)。

发布时间:2019-09-10 05:05:58

为什么k=(k<<1)|sda是sda放到低位而dat |= 0x80是dat放到高位?(前提,sda和dat都是一位数据)。

推荐回答

k<<1是将k的最低位空出来,默认补0 再与位变量SDA或运算,如果SDA是1,则k的最低位被置1如果SDA是0,则k的最低0仍然是0,于是读得一位二进制数 保存在最低位0X80二进制是 1000 0000或运算后最高位被置1 否则最高位保持0 同样读得到一位二进制数,保存在最高位注意:DAT是8位二进制变量,不是位变量
以上问题属网友观点,不代表本站立场,仅供参考!