def hash_string(num_bytes: int, string: str) -> int:
    """
    Converts a string into an integer hash value. This is primarily used to
    convert register and isolation node names from the Chip and RAS Data into
    integer values to save space in the data.
    """

    # This hash is a simple "n*s[0] + (n-1)*s[1] + ... + s[n-1]" algorithm,
    # where s[i] is a chunk from the input string the length of i_bytes.

    # Currently only supporting 1:8 byte hashes
    assert 1 <= num_bytes and num_bytes <= 8

    # Start hashing each chunk
    sumA = 0
    sumB = 0

    # Iterate one chunk at a time
    for i in range(0, len(string), num_bytes):
        # Combine each chunk into a single integer value. If we reach the end
        # of the string, pad with null characters.
        chunk = 0
        for j in range(0, num_bytes):
            chunk <<= 8
            chunk |= ord(string[i + j]) if (i + j < len(string)) else ord("\0")

        # Apply the simple hash
        sumA += chunk
        sumB += sumA

    # Mask off everything except the target number of bytes.
    mask = 0xFFFFFFFFFFFFFFFF
    sumB &= mask >> ((8 - num_bytes) * 8)

    return sumB


def hash_string_format(num_bytes: int, string: str) -> str:
    """
    Returns a formatted hex string of the given string's hash value.
    """
    return "{0:0{1}x}".format(hash_string(num_bytes, string), num_bytes * 2)
