Я использовал -~-n
в JavaScript.
Он преобразует 1 в -1, который представлен как 11111111
, затем переворачивает биты в 00000000
, что равно 0. Второй отрицательный знак не влияет на 0. С другой стороны, если n
равно 0, первый отрицательный знак не действует, тильда переворачивает биты, а второй отрицательный знак преобразует -1 в 1.