Для 32-битного DWORD целочисленный диапазон составляет от –2147483648 до 2147483647 или в шестнадцатеричном формате от -0x80000000 до 0x7FFFFFFF.
Таким образом, число -1 присутствует как 0xFFFFFFFF.(Как и при недостаточном счетчике)
Если установлен старший бит (31), то число является отрицательным.Чтобы сделать положительное число из отрицательного (отрицание), вы должны сделать сравнение числа и добавить 1.
Пример:
0xFFFFFFFE //-2
xor 0xFFFFFFFF //binary complement
---------------
0x00000001 //result of complement
+ 0x00000001 //add 1
---------------
0x00000002 //Result of negation is 2