PDA

Просмотр полной версии : как работает xor? не понимаю


filepark
17.02.2012, 12:01
пример: 3216549705 ^ 5299195436 выдаёт -2073826971
почему отрицательное число?

помогите пожалуйста разобраться

Genzo
17.02.2012, 12:06
Вы переполняете Number.MAX_VALUE и от начинается с Number.MIN_VALUE.
XOR работает так :
ставит 1 на всех битах, где у двух чисел не 1 бит. т.е.
2 ^ 4 = 0010 ^ 0100 = 0110 , а
4 ^ 6 = 0100 ^ 0110 = 0010

filepark
17.02.2012, 18:46
спасибо!
но как узнать какое число является максимальным подходящим для ксора, хотя бы порядок цифр? 10 знаков не подходит, а 9?

Genzo
17.02.2012, 19:13
Сравнивайте его с Number.MAX_VALUE и Number.MIN_VALUE.
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Number.html#MAX_VALUE

-De-
17.02.2012, 19:52
Мне кажется, что 3216549705 и 5299195436 оно считает беззнаковыми типами, а результат xor почему-то знаковым. Т.к. ни для Number (если адоби не поклали на стандат, то там отдельный бит для знака) ни для int (в котором не то чтоб есть "бит знака", но не то чтобы нет %) xor от двух положительных не должен быть отрицательным.
PS: xor - битовая операция, читайте про байтовые представления целых чисел и чисел с плавающей запятой, чтоб понять чокак.