Статусы дружбы

Хотелось бы узнать почему статусы в числовом представлении раскиданы именно в таком порядке:
const USER_FRIEND_OFFER  = 1;
	const USER_FRIEND_ACCEPT = 2;
	const USER_FRIEND_DELETE = 4;
	const USER_FRIEND_REJECT = 8;
	const USER_FRIEND_NULL   = 16;

Если кто-то вникал в систему, почему числа находятся в последовательности геометрической прогрессии, и что будет если поменять порядок к примеру на обратный.

2 комментария

avatar
0000001
0000010
0000100
0001000
0010000

стандартный способ объявления констант для того, чтобы с ними можно было безболезненно совершать битовые операции (AND, OR и т.д.)

если поменять порядок на обратный — или на случайный — ничего не произойдет, если взять другие числа — биты будут «портиться» при опреациях

подробности — в любой книжке по программированию на любом языке :)
avatar
Спасибо за подробное описание, всё понял.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.