I am quite unfamiliar with operating on individual bits. This question is more of a sanity check than anything else:

I would like a list of, say, one million individual bits. To do this, I should create a list of `1000000/16` `unsigned ints`. Then, by iterating through these `unsigned ints` I can use bitwise operators to set the individual bits to the values I desire. 

Is this correct, or am I being really dumb?
If I am on the right track, am I always guaranteed that an `unsigned int` will be 16 bits?