The book &quot;Expert C Programming&quot; also says stick with signed, use unsigned for bitfields or binary masks.  This post says unsigned for bitwise or modulo, so basically unsigned when expecting the value to be bits in a machine instead of a number.