C语言新手。我理解指针和十六进制格式,但我不知道'& 0x10‘在做什么。能不能请人解释一下,或者建议我研究和自学的题目。谢谢。
if(ptr1->name & 0x10) { prt2->indicator1 |= 0x80; }
发布于 2018-09-18 23:13:25
我不知道“&0x10”在做什么。能不能请人解释一下,或者建议我研究和自学的题目。谢谢。
if(ptr1->name & 0x10)
是使用ptr1->name的任何值,并使用0x10将其用于安定。
ptr1->name
0x10
如果您理解十六进制,那么您就知道0x10在十进制中是16,并且您可能知道16是2^4,这意味着在二进制中这个值是0b10000。
0b10000
如果此操作的结果为非零,则这将告诉我们设置了ptr1->name的第4位(位编号从0开始,例如g2^0= 0x1),并将导致行prt2->indicator1 |= 0x80;的执行。
prt2->indicator1 |= 0x80;
查看C中的位运算符
https://stackoverflow.com/questions/52395299
相似问题