public static short ExtractBits(this short toExtract, int index, int num) { short ret = 0; for (int i = index; i < index + num; i++) { ret = ret.SetBit(i - index, toExtract.BitSet(i)); } return ret; }
public static long ExtractBits(this long toExtract, int index, int num) { long ret = 0; for (int i = index; i < index + num; i++) { ret = ret.SetBit(i - index, toExtract.BitSet(i)); } return ret; }
public static byte ExtractBits(this byte toExtract, int index, int num) { byte ret = 0; for (int i = index; i < index + num; i++) { ret = ret.SetBit(i - index, toExtract.BitSet(i)); } return ret; }