gpt4 book ai didi

algorithm - 逻辑/算法 - 将列表中的选定项目作为整数存储 - 并再次撤消?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:40:42 24 4
gpt4 key购买 nike

我看过某人的代码,他们有一个项目列表,他们正在用一个整数保存所选项目。这些是表示位的相同整数,例如1,2,4,8,16,32,64等

我理解这个概念,因为你可以只得到一个最终值,并准确计算出所选择的内容,因为每个变化仍然会有一个唯一的总数。

我的问题是,将总数再次撤消到单独的整数中的计算是什么? (这样我就可以计算出选择的对象)

我无法将其概念化。这看起来对于应用程序来说内存效率更高,而不是存储所选对象的列表等。

谁能帮我把选中的元素从最终数量中找回来?

(我确实尝试过谷歌搜索,但我不太确定如何表达它,所以我没有找到太多!)

谢谢

最佳答案

发现了。 Java 按位运算符! &(在 Java 中)或“和”(在 Kotlin 中)比较两个数字。如果它们按位在同一个位置都有一个 1,那么结果也会在同一个位位置有一个 1。

所以我能够将我的总整数与代表每一天的整数进行比较。

所以我的代码比我想象的要简单得多!

val mondayIncluded = (event.repeatDays and mondayBit) != 0
val tuesdayIncluded = (event.repeatDays and tuesdayBit) != 0
val wednesdayIncluded = (event.repeatDays and wednesdayBit) != 0
val thursdayIncluded = (event.repeatDays and thursdayBit) != 0
val fridayIncluded = (event.repeatDays and fridayBit) != 0
val saturdayIncluded = (event.repeatDays and saturdayBit) != 0
val sundayIncluded = (event.repeatDays and sundayBit) != 0

所以基本上它是说,如果 4 的位对于总整数是打开的,而星期三的位是打开的,那么结果也会有星期三的位,所以我知道它已被选中。 (很难解释!)

关于algorithm - 逻辑/算法 - 将列表中的选定项目作为整数存储 - 并再次撤消?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51370204/

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