Я нашел этот камень (IMO) в пространстве имен System.Windows.Forms
. Я пытаюсь понять, почему это так.
[Flags]
public enum MouseButtons
{
None = 0,
Left = 1048576,
Right = 2097152,
Middle = 4194304,
XButton1 = 8388608,
XButton2 = 16777216,
}
Может кто-нибудь объяснить, почему он использует эти значения (мощность от 2^20
до 2^24
) вместо этого:
public enum MouseButtons
{
None = 0,
Left = 1, // 2^0
Right = 2, // 2^1
Middle = 4, // 2^2
XButton1 = 8, // 2^3
XButton2 = 16, // 2^4
}
Первое значение 100000000000000000000
в двоичном формате, которое оставляет пространство для еще 20 бит! Зачем нам такое пространство и почему оно сохраняется так?