/// <summary> /// Присвоить признак по указанному адресу (номеру бита) /// </summary> /// <param name="opt">Значение признака</param> /// <param name="bit">Номер бита</param> private void marked(bool opt, int bit) { Int32 val = HMath.Pow2(bit); if (opt == true) { if (!((m_mark & val) == val)) { m_mark += val; } else { ; } } else if ((m_mark & val) == val) { m_mark -= val; } else { ; } }
/// <summary> /// Проверить установлено ли значение признака в ИСТИНА по адресу (номеру бита) и доп./смещению /// </summary> /// <param name="val">Все значения признаков</param> /// <param name="bit">Номер бита</param> /// <param name="offset">Доп./смещение</param> /// <returns>Признак установки значения</returns> public static bool IsMarked(int val, int bit, int offset = 0) { bool bRes = false; if ((val & HMath.Pow2(bit, offset)) == HMath.Pow2(bit, offset)) { bRes = true; } else { ; } return(bRes); }