-1 % 16 = -1 Shouldn't that be 15? It seems like the sign is ignored for the modulo. Is this a bug or intended behaviour? The Python implementation returns here, as expected, 15.