gpt4 book ai didi

c - 了解 C 位宏

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

Practical C 书中有一节是关于位图和设置/测试位的。这是设置位的示例。

#define SET_BIT(x,y) graphics[(x)/8][y] |= (0x80 >>((x)%8))

现在,直到“|=”我才明白这个操作是如何“设置”位的?它将 SET_BIT(x) 的输入与掩码进行比较,我想,这个掩码来自哪里?

0x80 >> 从最左边(10000000)移几位,移多远取决于(x)%8的结果,之所以是"%8"是因为字节"x"有8位.我的理解正确吗?

这是练习 11-1 的完整代码,其中包括 TEST_BIT 和 CLEAR_BIT 宏。 exercise 11-1

最佳答案

|= 运算符执行就地按位或。由于您只移动一位,因此结果中只会修改一位。其余值将保持不变。

xy 是图片地址。 x 除以 8 得到字节地址,然后对 8 取模得到位地址。

关于c - 了解 C 位宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32555990/

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