private NumberParseResult parseNumber(String tok, SearchSettings settings) {
		BigInteger min = getMin(settings);
		BigInteger max = getMax(settings);
		try {
			if (tok.equals("-")) {
				if (settings.isDecimalUnsigned()) {
					return new NumberParseResult(null,
						"Negative numbers not allowed for unsigned values", false);
				}
				return new NumberParseResult(null, "Incomplete negative number", true);
			}
			BigInteger value = new BigInteger(tok);
			if (value.compareTo(min) < 0 || value.compareTo(max) > 0) {
				return new NumberParseResult(null,
					"Number must be in the range [" + min + ", " + max + "]", false);
			}
			long longValue = value.longValue();
			return createBytesResult(longValue, settings);
		}
		catch (NumberFormatException e) {
			return new NumberParseResult(null, "Number parse error: " + e.getMessage(), false);
		}
	}
{@link SearchFormat} for parsing and display bytes in a decimal format. It supports sizes of
2,4,8,16 and can be either signed or unsigned.
Ghidra/Features/Base/src/main/java/ghidra/features/base/memsearch/format/DecimalSearchFormat.java