Я понимаю, как побитовые операторы &
и |
работают для двоичных чисел.Однако я не совсем понимаю, как они работают с восьмеричными числами.
Преобразует ли система сначала число в двоичное, а затем выполняет операцию и затем преобразует обратно в восьмеричное?Или это переменная?
Например, если я сделаю одно из следующих действий:
echo decoct( 0400 & 0500 | 0000 );
echo decoct( 0600 & 0500 | 0000 );
В результате я получу 400
.
Однако, если я это сделаю:
echo decoct( 0400 & 0500 | 0100 );
echo decoct( 0600 & 0500 | 0100 );
Я получу 500
в обоих случаях.
Кроме того, я видел код, где битовая операция в PHP без использованияdecoct
вокруг.Сохраняет ли PHP его как восьмеричное после завершения операции?или преобразует его в десятичный (и когда он это делает?).
Пожалуйста, направьте меня в правильном направлении к тому, что изучать и научиться понимать восьмеричные (и десятичные и другие) побитовые операции.