La función Number.BitwiseNot devuelve el resultado de realizar una operación "NOT" a un número a nivel de bit.
Number.BitwiseNot(
number as any
) as any
number: número al que aplicar la operación "NOT"
Tanto number como el resultado de la función son números expresados en el sistema decimal.
Aun cuando la aplicación de la función se realiza correctamente, debemos tener en cuenta que el resultado devuelto (expresado como número decimal) no es la representación en decimal del número en binario obtenido. Por el contrario, el resultado con formato decimal devuelto será aquel cuyo complemento a 2 coincida con el número obtenido expresado en binario. Veamos un ejemplo:
El número 26, en binario, se expresa de la siguiente forma:
11010
El resultado de negar sus bits es:
00101
Este resultado -que es el que devuelve la función Number.BitwiseNot- equivale a 5. Sin embargo, la función muestra el número decimal -27 pues éste es el complemento a 2 del número binario 00101:
El número 27 en binario es:
11011
Su complemento es:
00100
Y al sumarle 1 queda:
00101
...que es el resultado obtenido por la función Number.BitwiseNot al aplicarla al número 26.