gpt4 book ai didi

bit-manipulation - 关于使用位图存储多个值的快速备忘单

转载 作者:行者123 更新时间:2023-12-03 16:29:59 27 4
gpt4 key购买 nike

当我要使用位图存储多个标志时,我总是感到困惑。例如,如果一个对象有10个可能的属性(全为Yes或No),我将使用无符号int和基于属性的前10位(来自LSB)。现在如何设置和取消设置特定位,以及如何检查是否设置了位?

如果要取消设置第5位,请使用:
比特数(flag,2 ^ 5-1)

但是我不清楚要用什么来检查是否设置了第5位。

最佳答案

检查是否设置了第n位:

(flags & (1 << n)) != 0

设置第n位:
flags |= (1 << n)

清除第n位:
flags &= ~(1 << n)

切换第n位:
flags ^= (1 << n)

关于bit-manipulation - 关于使用位图存储多个值的快速备忘单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1023901/

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