ARM Immediate Value Encoding
The rotated byte encoding allows the 12-bit value to represent a much more useful set of numbers than just 0–4095.
ARM immediate values can represent any power of 2 from 0 to 31. So you can set, clear, or toggle any bit with one instruction.
More generally, you can specify a byte value at any of the four locations in the word.