#math #bit-manipulation #bit
#математика #манипулирование битами #бит
Вопрос:
Прошу прощения, если это не в том разделе. Что касается моего вопроса, я понимаю операции маскирования AND и OR . Я совершенно сбит с толку, почему 10000010 имеет то же значение маски, что и исходное значение? Нас попросили переключить биты 1 и 7. Если я правильно понимаю XOR, я бы переключил 1 на 0 и 0 на 1. Почему маска 10000010 не равна 00000000? Я ценю любое полезное объяснение по этому вопросу.
У меня есть асинхронный класс, поэтому спросить моего профессора во время занятий невозможно. Я уже отправил электронное письмо своему профессору, но он не отвечал последние несколько часов.
Комментарии:
1. Что вы подразумеваете под «маской 10000010»?
2. @harold Это было примерное значение для нас, чтобы определить его маску с помощью оператора XOR. Нам пришлось переключить 1 и 7, поэтому эти две «1» в 10000010. К сожалению, нам был приведен только один пример, поэтому этот пример действительно сбил меня с толку.
3. Хорошо, в любом случае, вы можете показать код
4. @harold Я не работаю ни над каким кодом, и у меня его нет для начала.
5. Тогда что вы делаете? Если вы переворачиваете биты вручную, вы можете сделать результат таким, каким хотите, чтобы он был
Ответ №1:
XOR — это функция, которая принимает 2 входных сигнала и применяет «ИСКЛЮЧАЮЩЕЕ ИЛИ» (XOR), что означает, что оно равно 1
, только если входные данные разные:
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0
Это означает, что бит к биту у вас есть:
10000010 XOR 00000000 = 10000010
Если вы хотите получить 00000000
, вам следует перейти:
10000010 XOR 10000010 = 00000000
Комментарии:
1. Это полезно. Я не знал, что могу пойти двумя путями, чтобы получить ответ и маску. Спасибо, что нашли время ответить на мой вопрос.
2. Нет проблем, не стесняйтесь принять ответ, если это решило вашу проблему.