protected String getValueString(byte[] bytes, SearchSettings settings, boolean padNegative) {
		int byteSize = settings.getDecimalByteSize();
		boolean isBigEndian = settings.isBigEndian();
		boolean isUnsigned = settings.isDecimalUnsigned();
		StringBuilder buffer = new StringBuilder();
		int numValues = bytes.length / byteSize;
		for (int i = 0; i < numValues; i++) {
			long value = getValue(bytes, i, settings);
			String text = isUnsigned ? Long.toUnsignedString(value) : Long.toString(value);
			buffer.append(text);
			if (i != numValues - 1) {
				buffer.append(", ");
			}
		}
		int remainder = bytes.length - numValues * byteSize;
		if (remainder > 0) {
			byte[] remainderBytes = new byte[remainder];
			System.arraycopy(bytes, numValues * byteSize, remainderBytes, 0, remainder);
			byte[] padded = padToByteSize(remainderBytes, byteSize, isBigEndian, padNegative);
			long value = getValue(padded, 0, settings);
			String text = isUnsigned ? Long.toUnsignedString(value) : Long.toString(value);
			if (!buffer.isEmpty()) {
				buffer.append(", ");
			}
			buffer.append(text);
		}

		return buffer.toString();
	}
{@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