首页 > 解决方案 > 在 C 中 - if(ptr->name & 0x10) 是什么意思

问题描述

C语言新手。我了解指针和十六进制格式,但我不确定 '& 0x10' 在做什么。有人可以解释一下,或者就研究和自学的主题给我建议。谢谢你。

if(ptr1->name & 0x10)
{
     prt2->indicator1  |= 0x80;      
}  

标签: c

解决方案


我不确定 '& 0x10' 在做什么。有人可以解释一下,或者就研究和自学的主题给我建议。谢谢你。

if(ptr1->name & 0x10)

取is的任何值ptr1->name并将其与.0x10

如果您了解十六进制,那么您知道0x10十进制是 16,并且大概您知道 16 是 2^4,这意味着二进制这个值是0b10000.

如果这个操作的结果非零,那么这告诉我们第 4 位ptr1->name被设置(位编号从 0 开始,例如 2^0 = 0x1),并将导致执行该行prt2->indicator1 |= 0x80;

查看C 中的位运算符


推荐阅读