public static class UShortExtensions { public static int Section(this ushort value, int offset, int width) { var mask = 0; for (int i = 0; i < width; i++) { mask |= 1 << i; } var result = (value >> offset) & mask; return result; } }