Eigentlich ist es ja einfach:

2^0 = 0b00000001 = 0x01 = (1<<0) = 1 (^0 ist als 1 definiert!)
2^1 = 0b00000010 = 0x02 = (1<<1) = 2
...
2^6 = 0b01000000 = 0x40 = (1<<6) = 64
2^7 = 0b10000000 = 0x80 = (1<<7) = 128