# -*- coding:utf-8 -*-


def convert_n_bytes(n, b):
    bits = b*8
    return (n + 2**(bits-1)) % 2**bits - 2**(bits-1)

def convert_4_bytes(n):
    return convert_n_bytes(n, 4)


def java_string_hashcode(s):

    h = 0
    n = len(s)

    for i, c in enumerate(s):
        h = h + ord(c)*31**(n-1-i)

    return convert_4_bytes(h) 



