Как работает побитовый оператор XOR в JavaScript?

93
01 сентября 2019, 22:30

Почему после 11100, выскакивает 420, а не 00100, но конечное значение (11000), всё равно соответствует первоначальному?

var sir = 11000; 
alert(sir); 
var meg = 11100; 
alert(meg); 
var tun = sir ^ meg; 
alert(tun); 
alert(tun ^ meg);

Answer 1

Вы записываете 2 числа в десятичной системе счисления. Операция ^(XOR) производится над битами(!), которыми представлены эти 2 числа.

Т.е.


1100010 = 101010111110002

1110010 = 101011010111002

Применив к ним операцию ^ получим следующее:

          000001101001002 = 42010


"Но конечное значение (11000), всё равно соответствует первоначальному." - это одно из свойств операции XOR: (a XOR b) XOR b = a
Это скрытые тонкости программирования так сказать. Сам в своё время долго догонял что к чему и как.

READ ALSO
Undefined при обращении к Ajax об'єкту

Undefined при обращении к Ajax об'єкту

Пытаюсь сделать простой конвертер валют!Курс валют беру с сайта https://fixerio через Api

116
Regex для файла с расширением

Regex для файла с расширением

Есть файлы, которые имеют формат названия *цифра*bmp и *цифра*_a

110