PHP
PHP Задача. Помогите пожалуйста. Всё написал в пояснении.
8. Дайте ответ на вопрос, как работает оператор xor? В каких случаях он возвращает значение true, в каких – false? Для этого напишите скрипт, который выводит значения операций со всеми возможными вариантами операндов (4 варианта). Чему равно 100 xor 100 для любых значений 100?
E K описывает не xor, а ^ - и даже это делает с ошибками. Операция ^ - это "не равно" для каждой пары битов: если биты равны (оба 0 или оба 1) результатом будет бит со значением 0. Если биты не равны (0 и 1 или 1 и 0) результатом будет 1.
Потому в его примере правильный ответ: 1100 0011 ^ 1111 0101 = 0011 0110
Соответственно, ^ двух одинаковых чисел ВСЕГДА даёт 0 - независимо от системы счисления. Потому 100 ^ 100 = 0
Операция xor в PHP работает немного иначе. Cначала оба операнда приводятся к логическому типу: "пустое" значение (false, 0, '0', '', [], null) преобразуется в false, всё остальное - в true. А потом к получившимся логическим значениям применяется операция "не равно".
Фактически, выражение $a xor $b полностью эквивалентно выражению ((bool)$a) != ((bool)$b)
Потому и 1100100 xor 1100100, и 100 xor 100 дадут false - т. к. любые ненулевые операнды будут преобразованы в true, а true xor true равно false.
Потому в его примере правильный ответ: 1100 0011 ^ 1111 0101 = 0011 0110
Соответственно, ^ двух одинаковых чисел ВСЕГДА даёт 0 - независимо от системы счисления. Потому 100 ^ 100 = 0
Операция xor в PHP работает немного иначе. Cначала оба операнда приводятся к логическому типу: "пустое" значение (false, 0, '0', '', [], null) преобразуется в false, всё остальное - в true. А потом к получившимся логическим значениям применяется операция "не равно".
Фактически, выражение $a xor $b полностью эквивалентно выражению ((bool)$a) != ((bool)$b)
Потому и 1100100 xor 1100100, и 100 xor 100 дадут false - т. к. любые ненулевые операнды будут преобразованы в true, а true xor true равно false.
Антон Дробышевский
Андрей, спасаешь и спасаешь, огромное спасибо за твои старания, скинь свой кошелёк, когда у меня деньги будут - обязательно скину
http://php.net/manual/ru/language.operators.bitwise.php
XOR действует так: он побитово сравнивает значение и если биты разнятся, оставляет значение "1", если же значение обоих бит совпадает, результат инвертирует. Т. е. если и там и там "1", то результат - "0".
например, возьмём два байта и "заиксорим" их:
1100 0011 и 1111 0101
Результат будет:
0011 1110
100 - это "сто" или это двоичное число?
Если 100 - в десятичной системе счисления, то:
100 xor 100 будет выглядеть так в двоичной:
1100100 xor 1100100 = 0011011
Если 100 - это двоичное число, то
100 xor 100 = 011
XOR действует так: он побитово сравнивает значение и если биты разнятся, оставляет значение "1", если же значение обоих бит совпадает, результат инвертирует. Т. е. если и там и там "1", то результат - "0".
например, возьмём два байта и "заиксорим" их:
1100 0011 и 1111 0101
Результат будет:
0011 1110
100 - это "сто" или это двоичное число?
Если 100 - в десятичной системе счисления, то:
100 xor 100 будет выглядеть так в двоичной:
1100100 xor 1100100 = 0011011
Если 100 - это двоичное число, то
100 xor 100 = 011
Антон Дробышевский
Капец, я ещё на паре в университете двоичные, восьмиричные нихуя не понимал, а тут п. зда
Похожие вопросы
- PHP MYSQL после ввода запроса , отображается пустая строка перед 1 кой, немогу понять Помогите пожалуйста
- Помогите пожалуйста задача по php)
- Приветствую, помогите пожалуйста я правильно понял суть языка программирования ,PHP
- Хочу работать php программистом. Но как узнать - готов я или нет? На php же можно очень много написать, в отличие от JS.
- Работа в php, помогите, пожалуйста
- PHP, Html помогите
- Помогите пожалуйста написать скрипт в perfect click
- PHP можете помочь?
- Отправка текста в базу данных PHP + MySQL! Помогите ((
- Как заприватить территорию в майнкрафт? как запривать территорию в майнкрафт??? помогите пожалуйста