C#. Установить, получить значение бита в числе

Для текущего проекта, тот который BackupShow, необходимо хранить дни недели, по которым будут выполнятся задания, дабы не заводить лишних полей в БД. Можно все дни недели хранить в одном байте и соответственно в одном поле таблицы БД. Для этого будем работать с битами:

    internal static class Bit
    {
        public static bool IsOn(int Value, byte Bit)
        {
            return (Value >> Bit & 1) == 1;
        }

        public static int Set(int Value, byte Bit)
        {
            return Set(Value, Bit, true);
        }

        public static int Set(int Value, byte Bit, bool On)
        {
            return On ? Value | (1 << Bit) : Clear(Value, Bit);
        }

        public static int Clear(int Value, byte Bit)
        {
            return Value & ~(1 << Bit);
        }
    }

Таким образом число 172 хранит информацию о вторнике, среде, пятнице и воскресенье.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *