Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It's a little verbose and can probably be reduced, but "((x % m) + m) % m" always works. Although it's probably not better than a check if x < 0 since branch prediction will get that right almost always.

I do think it's quite odd and frustrating that modulo can return negative numbers and I don't really get the reasoning there, but there's probably a good reason I don't know about.



The only reason is that C does it that way. And C does it that way because machine code does it that way.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: