int multiply(int a, int b) {
		boolean negative = false; // Sign
		if (a < 0) {
			negative = !negative;
			a = sub(0, a);
		}
		if (b < 0) {
			negative = !negative;
			b = sub(0, b);
		}
		int res = 0;
		while (b != 0) {
			if ((b & 1) == 1) {
				res = add(res, a);
			}
			a <<= 1;
			b >>= 1; // 算术移位
		}
		return negative ? sub(0, res) : res;
	}