Signed and unsigned variables can represent positive and negative numbers, or just positive numbers respectively. Declaring a variable as unsigned increases its maximum positive range. Storage classes like auto, static, extern and register provide information about a variable's location and visibility. Bitwise operators operate on binary representations of numbers and are commonly used for tasks like compression/encryption that require bit-level manipulation.