/// <summary> /// Merges three seven-bit numbers into one 32-bit unsigned integer number. /// </summary> /// <param name="head"><see cref="SevenBitNumber"/> representing left part of resulting number.</param> /// <param name="middle"><see cref="SevenBitNumber"/> representing middle part of resulting number.</param> /// <param name="tail"><see cref="SevenBitNumber"/> representing right part of resulting number.</param> /// <returns>Single unsigned 32-bit integer number made of seven-bit halfs.</returns> public static uint Combine(SevenBitNumber head, SevenBitNumber middle, SevenBitNumber tail) { return((uint)((head << 14) | (middle << 7) | tail)); }
/// <summary> /// Merges two seven-bit numbers into one 16-bit unsigned integer number. /// </summary> /// <param name="head"><see cref="SevenBitNumber"/> representing left part of resulting number.</param> /// <param name="tail"><see cref="SevenBitNumber"/> representing right part of resulting number.</param> /// <returns>Single unsigned 16-bit integer number made of seven-bit halfs.</returns> public static ushort Combine(SevenBitNumber head, SevenBitNumber tail) { return((ushort)((head << 7) | tail)); }