use {s,u}32int instead of {,unsigned} long