找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

这2个C语言语句的意义?

查看数: 2521 | 评论数: 10 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-11-21 14:51

正文摘要:

两个与操作的意义是什么?谢谢大家

回复

ID:824490 发表于 2022-11-23 16:53
李冬 发表于 2022-11-22 09:46
如果除BIT3外其他位为1。会不会造成判断错误

你去KFC消费,KTV失窃与你何干?
ID:709761 发表于 2022-11-22 09:46
Longan.Wang 发表于 2022-11-22 08:54
前一句是判断状态寄存器的bit3是否为‘1’;
后一句把状态寄存器的bit4和bit3清‘0’,之后再把状态寄存器 ...

如果除BIT3外其他位为1。会不会造成判断错误
ID:709761 发表于 2022-11-22 09:00
1261867136qq 发表于 2022-11-22 08:31
简单的来说: &" “与”运算,有0 出0 ,全1才是1,这么看,应该是判断 某位是否为1
然后,&" “与”运算  ...

回答的很好
ID:709761 发表于 2022-11-22 09:00
名字不是重点 发表于 2022-11-21 18:59
比如:

statusregister &(0x0008)=>

回答的很好
ID:77589 发表于 2022-11-22 08:54
前一句是判断状态寄存器的bit3是否为‘1’;
后一句把状态寄存器的bit4和bit3清‘0’,之后再把状态寄存器的内容写到0x8000这个地址。
ID:308903 发表于 2022-11-22 08:31
简单的来说: &" “与”运算,有0 出0 ,全1才是1,这么看,应该是判断 某位是否为1
然后,&" “与”运算 加上  取反, 就记住: 是1的那个位,置0 ,
ID:824490 发表于 2022-11-21 18:59
本帖最后由 名字不是重点 于 2022-11-21 19:12 编辑

比如:

statusregister &(0x0008)=>
0x0008=B_0000_0000_0000_1000 :
"&" 即“与”运算,在这边就是判断statusregister这个变量的第3位是为“0”或为“1”,

statusregister &(~0x0018)=>
"~" 即数值取反的意思,即 B_ 0000_0000_0001_1000 取反,相当于0xFFFF - 0x0018 = 0xFFE7 ;
"&" 即“与”运算,在这边就是把statusregister这个变量的第3/4位置“0”,其它位不变。


如果还没看明白,可真得要拿起C的基本知识重温一下了。
ID:94031 发表于 2022-11-21 18:24
本帖最后由 xuyaqi 于 2022-11-22 07:37 编辑

上面一个 ,                        0x0008 -》..000001000B,判断sta.. 倒数第4位是0还是1
下面一个,(0x0008按位取反后) -》..111110111B,判断sta.. 倒数第4位是0还是1
ID:709761 发表于 2022-11-21 17:03
xuyaqi 发表于 2022-11-21 16:38
上面一个 , sta.. 与   0x0008                    位与 的运算结果作为判断依据;
下面一个,sta.. 与(0 ...

不够详细
ID:94031 发表于 2022-11-21 16:38
本帖最后由 xuyaqi 于 2022-11-22 07:39 编辑

上面一个 , sta.. 与   0x0008                    位与 的运算结果作为判断依据;
下面一个,sta.. 与(0x0018按位取反后)位与 的运算结果作为判断依据

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表