Инверсия чисел?
В одном учебнике встретил такой термин: Существует старый трюк с использованием побитового оператора НЕ — ~. Он преобразует число в 32-разрядное целое со знаком (signed 32-bit integer). Дробная часть, в случае, если она присутствует, отбрасывается. Затем все биты числа инвертируются.
- Можно объяснить на простом языке, что значит "Затем все биты числа инвертируются"?
alert( ~2 );
alert( ~1 );
alert( ~0 );
alert( ~-1 );
Ответы (2 шт):
Автор решения: HTMLProgrammer
→ Ссылка
Инверсия чисел - это побитовая операция, которая по сути делает вот что:
~a = -(a + 1).
Её часто используют в условиях вхождения подстроки в строку, так как если это вхождение не найдено, то indexOf вернет -1
Вот пример применения, но это не лучщий пример для повторения, так как код станет сложнее понимать
Пример:
let index = 'test'.indexOf('y'); //index = -1
if(~index)
alert('Есть');
else
alert('Нет');