![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2009
Сообщений: 77
|
пример: 3216549705 ^ 5299195436 выдаёт -2073826971
почему отрицательное число? помогите пожалуйста разобраться |
|
|||||
|
Вы переполняете Number.MAX_VALUE и от начинается с Number.MIN_VALUE.
XOR работает так : ставит 1 на всех битах, где у двух чисел не 1 бит. т.е. 2 ^ 4 = 0010 ^ 0100 = 0110 , а 4 ^ 6 = 0100 ^ 0110 = 0010
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works. |
|
|||||
|
Регистрация: Jul 2009
Сообщений: 77
|
спасибо!
но как узнать какое число является максимальным подходящим для ксора, хотя бы порядок цифр? 10 знаков не подходит, а 9? Последний раз редактировалось filepark; 17.02.2012 в 18:51. |
|
|||||
|
Сравнивайте его с Number.MAX_VALUE и Number.MIN_VALUE.
http://help.adobe.com/en_US/FlashPla...html#MAX_VALUE
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works. |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Мне кажется, что 3216549705 и 5299195436 оно считает беззнаковыми типами, а результат xor почему-то знаковым. Т.к. ни для Number (если адоби не поклали на стандат, то там отдельный бит для знака) ни для int (в котором не то чтоб есть "бит знака", но не то чтобы нет %) xor от двух положительных не должен быть отрицательным.
PS: xor - битовая операция, читайте про байтовые представления целых чисел и чисел с плавающей запятой, чтоб понять чокак.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:12. |
|
|
« Предыдущая тема | Следующая тема » |
|
|