2012-02-17 3 views
0

На веб-странице я вижу следующий фрагмент сценария.Значение и функционирование знака^(caret) в javascript

(d.charCodeAt(i)^k.charCodeAt(i)).toString() 

Это был часть из for-loop, и я знаю, что charCodeAt(i), но я на самом деле интересно, что функциональность ^ знака ... Я сделать некоторые поиск, но не смог найти что-нибудь ...

Что такое ^ и какая функция или оператор существует на Python или других языках программирования, которые выполняют ту же работу?

ответ

4

Это оператор bitwise XOR. Из MDN docs:

[побитовое исключающее] возвращает один в каждой битовой позиции, для которых соответствующие биты либо, но не оба операнда являются те.

Где операнды находятся в любом положении слева или справа от оператора.

Например, если мы имеем два байта:

A 11001100 
B 10101010 

Мы заканчиваем с

Q 01100110 

Если бит A установлен ИЛИ бит B установлен, но НЕ оба, то результат 1, в противном случае это 0.


В примере, вы даете, это займет бинарное представление кода символа ASCII от d.charCodeAt(i) и k.charCodeAt(i) и XOR их. Он делает то же самое в Python, C++ и большинстве других языков. Его нельзя путать с экспоненциальным оператором в связанных с математикой контекстах; языки предоставят функцию pow() или аналогичную. JavaScript для одного имеет Math.pow(base, exponent).

3

В Javascript это оператор bitwise XOR - эксклюзивный или. Возвращает true только в том случае, если один или другой из операндов истинен, но если они оба true или оба false, он возвращает false.

В Python это the same thing.

Wikipedia's XOR page.

2

Это побитовое XOR. Он выполняет «исключение» или «в каждом бите операндов».

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