public static BitString BitStringSubtraction(BitString larger, BitString smaller) { var largerVal = larger.ToPositiveBigInteger(); var smallerVal = smaller.ToPositiveBigInteger(); if (smallerVal > largerVal) { throw new ArgumentException("Unable to subtract, leads to negative value"); } var result = largerVal - smallerVal; return(new BitString(result, larger.BitLength)); }