If you use the value as a flag, it's more logical to store it as unsigned since the normal expression would be 1 and 0, not -1 and 0. A logic expression in C also returns 1 if true, not -1
Another problem is that if you use signed bit fields, it may take many more instructions to sign extend the value instead of just masking off the unneeded bits.