gpt4 book ai didi

C 移零或移零

转载 作者:太空宇宙 更新时间:2023-11-04 04:42:36 25 4
gpt4 key购买 nike

我正在学习程序 AVR uCs

示例代码片段包含这一行:

DDRC |= (0 << 0) | (0 << 1); // PIN C0, C1 as input for buttons

我不明白什么意思

(0 << 0)

一般来说,这条线在逻辑上做了什么。

我知道DDRC是什么我只想明白这个逻辑运算。

可能评论有帮助。

最佳答案

代码什么都不做,而且可能是错误的。

作者的意思可能是

DDRC |= (1 << 0) | (1 << 1);

这是

的缩写
DDRC |= 3;

它读取 DDRC,设置最底部的两位,然后将该值写回。使用 << 的语法和 |试图使这一点更清楚。

另一种解释是作者打算清除这两位。在这种情况下,代码是错误的,因为它没有这样做。

如果DDRC是端口 C 的数据方向寄存器,写入零位可能会将方向切换为输入,在这种情况下,意图似乎是清除这些位。

合适的代码是

DDRC &= ~( (1 << 0) | (1 << 1) );

关于C 移零或移零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24656818/

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