我正在查看闹钟项目中的一些代码。该代码使用整数来存储重复发生的警报信息。也就是说,每个 MWF 都会发生一个警报。我知道整数只是一系列字节,每个字节都是一系列位,因此您可以使用该位信息来创建一个整数,该整数对于一周中的每种模式都是唯一的。我不明白的是这些函数中的逻辑:
// is a given day "set"?
private boolean isSet(int day) {
return (mDays & (1 << day)) > 0;
}
// set a given day to on or off
public void set(int day, boolean set) {
if (set) {
mDays |= (1 << day);
} else {
mDays &= ~(1 << day);
}
}
有人可以解释一下这两个功能的作用以及它们是如何工作的吗?