modulus not wrapping properly

EDIT: oh, it appears this is normal C behavior, it would be nice to have a function that does what i want it to though

task main()
{
	writeDebugStreamLine("a: %i",11%10);
	writeDebugStreamLine("b: %i",22%10);
	writeDebugStreamLine("c: %i",-1%10);
}

this outputs

a: 1
b: 2
c: -1

but -1%10 should be 9 not -1