Чтобы установить бит, используйте:
x |= 0b1; // set LSB bit
x |= 0b10; // set 2nd bit from LSB
, чтобы стереть бит:
x &= ~0b1; // unset LSB bit (if set)
x &= ~0b10; // unset 2nd bit from LSB
для переключения бит:
x ^= 0b1;
Обратите внимание, что я использую 0b ?. Вы также можете использовать любое целое число, например:
x |= 4; // sets 3rd bit
x |= 0x4; // sets 3rd bit
x |= 0x10; // sets 9th bit
Однако это затрудняет определение того, какой бит изменяется.
Использование двоичного файла позволяет вам видеть, какие точные биты будут
Чтобы динамически установить бит, используйте:
x |= (1 << y); // set the yth bit from the LSB
(1 << y)
сдвигает ... 001 y места слева, поэтому вы можете перемещать
Вы также можете установить несколько бит одновременно:
x |= (1 << y) | (1 << z); // set the yth and zth bit from the LSB
Или для отмены:
x &= ~((1 << y) | (1 << z)); // unset yth and zth bit
Или для переключения:
x ^= (1 << y) | (1 << z); // toggle yth and zth bit
Вашему RewriteRule необходимо проверить полный путь URL.
RewriteRule ^sports/football/2018-19/?$ %{REQUEST_URI}?season_id=39 [L,R]
Приведенное выше правило вызовет ошибку цикла перенаправления, поскольку шаблон и путь назначения идентичны. Чтобы решить эту проблему, вы можете поместить следующее RewriteCond
прямо перед правилом.
RewriteCond %{QUERY_STRING} ^$
Приведенный выше RewriteCond гарантирует, что правило не будет исполняться, когда URI равен /sports/2018-19? query staring
.