public static BigInteger operator &(BigInteger bi1, BigInteger bi2) { BigInteger result = new BigInteger(); int len = (bi1.dataLength > bi2.dataLength) ? bi1.dataLength : bi2.dataLength; for (int i = 0; i < len; i++) { result.data[i] = bi1.data[i] & bi2.data[i]; } result.dataLength = 70; while ((result.dataLength > 1) && (result.data[result.dataLength - 1] == 0)) { result.dataLength--; } return result; }