/// <summary> /// 解析Flags /// </summary> public void ParseFlagsValue() { BitMask32 value = Flags; IsEncrypted = value.Test(0); IsBuildin = value.Test(1); }
/// <summary> /// 解析标记位 /// </summary> public static void ParseFlags(int flags, out bool isEncrypted, out bool isCollected) { BitMask32 value = flags; isEncrypted = value.Test(0); isCollected = value.Test(1); }
/// <summary> /// 创建标记位 /// </summary> /// <param name="isEncrypted">是否为加密文件</param> public static int CreateFlags(bool isEncrypted) { BitMask32 flags = new BitMask32(0); if (isEncrypted) { flags.Open(0); } return(flags); }
/// <summary> /// 获取标志位的解析数据 /// </summary> public FlagsData GetFlagData() { if (_flagData == null) { BitMask32 value = Flags; bool isEncrypted = value.Test(0); bool isBuildin = value.Test(1); bool isRawFile = value.Test(2); _flagData = new FlagsData(isEncrypted, isBuildin, isRawFile); } return(_flagData); }
public void CheckToString() { BitMask32 mask = new BitMask32(); string actual = mask.ToString(); string expected = "".PadLeft(BitMask32.LENGTH, '0'); Assert.AreEqual(expected, actual); mask.Set(2); actual = mask.ToString(); expected = expected.Substring(0, 29) + '1' + expected.Substring(30); Assert.AreEqual(expected, actual); Assert.AreEqual("0100", mask.ToString(4)); }
/// <summary> /// 设置Flags /// </summary> public void SetFlagsValue(bool isEncrypted, bool isBuildin) { IsEncrypted = isEncrypted; IsBuildin = isBuildin; BitMask32 mask = new BitMask32(0); if (isEncrypted) { mask.Open(0); } if (isBuildin) { mask.Open(1); } Flags = mask; }
public static uint gather(uint src, BitMask32 mask) => gather(src, (uint)mask);
public static uint ToScalar(this BitMask32 src) => (uint)src;
public static BitVector32 ToBitVector(this BitMask32 src) => ((uint)src).ToBitVector();