鉴于以下规模:

Mon = 64, Tue = 32, Wed = 16, Thu = 8, Fri = 4, Sat = 2, Sun = 1

您将如何创建一个传递整数的函数来解码一周中相应的几天?

例如,假设传递了值127,您如何确定该值包含哪些天?

最佳答案

听起来像个位掩码。您可以在这里阅读有关位掩码的信息。 http://en.wikipedia.org/wiki/Mask_%28computing%29

星期日是第一位,星期六是第二位,依此类推,星期一是第七位。要查看是否包括一天,请使用二进制AND。

var listOfDays = 127;
var hasSun = listOfDays & 1;
var hasSat = listOfDays & 2;
var hasFri = listOfDays & 4;
// etc

07-26 03:01