Hello everyone, i've been reading many tutorials on bit manipulation and advanced bit manipulation. As seeing im new these may seem like funny questions but have in mind I am serious.

When working with the bit wise operators (^, |, &, ~) what are you exactly doing? Comparing the two bytes or individual bits and if so for what purpose. I have seen this done for encryption programs exspecially using the exclusive or because it automatically flips every bit around, but in that case do certain bit patterns represent certain characters or (I do know integers of course, its binary). I have seen that many decryption programs use direct bit manipulation to find encapsulated data and there it is again, are certain characters programmed represented by certain digits? say 0001 = a? Im still pretty much a poor sappy newbie but help is appreciated =D. Also much explanation one what bits are used for today helps and how it relates to data.