2015-05-27 2 views
0

Взято отсюда: http://php.net/manual/en/function.base-convert.php#105414Какова цель XOR с нулем

function rome($N){ 
    $c='IVXLCDM'; 
    for($a=5,$b=$s='';$N;$b++,$a^=7) 
     for($o=$N%$a,$N=$N/$a^0;$o--;$s=$c[$o>2?$b+$N-($N&=-2)+$o=1:$b].$s); 
    return $s; 
} 

Какова цель XOR $a^0; здесь? (4-я строка)

Удаление, похоже, не имеет никакого значения. Проверьте это: http://goo.gl/K6TwQI

+3

Я не думаю, что эта функция была разработана, чтобы быть понятной. –

+0

Тем не менее XOR должен что-то там сделать ... – Dharman

+1

Это скорее всего неявное преобразование выражения в целое число, поскольку XOR - довольно быстрая операция. –

ответ

0

Вы обычно увидите, что люди используют побитовые операторы для неявного преобразования выражений в целые числа из-за того, как работает основной язык. Это связано главным образом с тем, что эти операции быстро растут и избегают вызовов функций и т. Д.

Поскольку XOR не влияет на целую часть переменной, я лучше всего это то, что это используется только для обеспечения того, чтобы $a всегда оценивался как целое число.

Адрес example.

+0

'$ N' всегда оценивается как целое число. или '$ N/$ a' _Order of operation_ – Dharman

+0

Я имел в виду' $ a' как правый операнд для деления. –

+0

Но '$ a' всегда является целым числом. XOR применяется ко всему выражению (деление до поразрядного) – Dharman

Смежные вопросы