Я хочу очистить i-й элемент в целочисленном представлении бита.
Моя попытка следующая
func clearBit (num: Int, i: Int) -> Int{
let mask = (~(1 << i))
return ( num & mask )
}
Теперь мой первый пример работает, как и ожидалось:
clearBit(num: 10011, i: 0) // == 10010
Однако удаление 1-го элемента
clearBit(num: 10011, i: 1) // == 10009
не равно ожидаемому результату 10010.
Куда я иду не так?