Я наткнулся на этот кусок кода без каких-либо комментариев:Какой смысл в этой xor-магии определить верхнюю границу цикла?
int delay = 5;
int maxDelay = 5 * (3^5); // << what's this xor magic?
while(Something && delay < maxDelay) {
Thread.Sleep(delay);
delay *= 3;
}
Какой смысл в этом 3^5
? Это «3 xor 5», что шесть, а не что-то интересное, например, одна треть из Int32.MaxValue
. Почему бы просто не написать 6
? Я предполагаю, что он должен что-то сделать с тем, что результат затем умножается на 5
, а также умножается на 3
на каждой итерации.
Это какой-то известный узор? Что оно делает?
Невероятно, что вам было 30 лет, в этом случае кажется, что кому-то скучно или является одним из тех математических ученых, поэтому задержка умножается на 3 в конце цикла lol, он хотел, чтобы это было как задержка будет 5 .. тогда 15 .. тогда, наконец, 30, но он все еще только 5,15, то 45, вероятно, хотел, чтобы он выполнял 3 раза вместо 2. – SSpoke
Yuk. Я бы установил это на что-то не глупое, то есть «maxDelay = 30», или, действительно, 243, если он хотел использовать оператор мощности. –
Возможно, он хотел сделать «Math.Pow (3, 5)» и был ленив сделать это с помощью calc (и написал это, не зная, что это xor) –