gpt4 book ai didi

c - '&' 操作后存储的值是多少

转载 作者:行者123 更新时间:2023-11-30 16:20:42 25 4
gpt4 key购买 nike

在下面的代码中

void I2C_Write(uint8_t v_i2cData_u8)
{
uint8_t i;

for(i=0;i<8;i++) // loop 8 times to send 1-byte of data
{
SDA_PIN = v_i2cData_u8 & 0x80; // Send Bit by Bit on SDA line
i2c_Clock(); // Generate Clock at SCL
v_i2cData_u8 = v_i2cData_u8<<1;// Bring the next bit to be transmitted to MSB position
}

i2c_Clock();
}

语句中:SDA_PIN = v_i2cData_u8 & 0x80;据说数据会一点一点地发送,如果数据是一点一点发送的,那么SDA_PIN中会存储什么,SDA_PIN的值会= 0x80还是1?

最佳答案

SDA_PIN 将被分配为 0x80 (128) 或 0,具体取决于该循环中 v_i2cData_u8 的高位。如果您想确保写入 0x01 字节,则需要执行以下操作:

SDA_PIN = (v_i2cData_u8 & 0x80) ? 1:0;

关于c - '&' 操作后存储的值是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55203884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com