Я читал о битовых операторах в Objective-C в книге Кочана "Программирование в Objective-C".
Я ОЧЕНЬ путаюсь в этой части, хотя я действительно понял все остальное, представленное мне до сих пор.
Вот цитата из книги:
Побитовый и оператор
Побитовое ANDing часто используется для операций маскировки. То есть, этот оператор можно легко использовать для установки определенных битов элемента данных на 0. Например, оператор
w3 = w1 & 3;
присваивает w3 значение w1 побитовое ANDed с константой 3. Это имеет то же значение, что и все биты в w, отличные от самых правых двух битов, до 0 и сохраняющие самые правые два бита из w1.
Как и все бинарные арифметические операторы в C, бинарные операторы бит также могут использоваться в качестве операторов присваивания путем добавления знака равенства. Утверждение
word &= 15;
поэтому выполняет ту же функцию, что и:
word = word & 15;
Кроме того, он имеет значение для установки всех, кроме самых правых четырех бит слова, на 0. При использовании констант при выполнении побитовых операций обычно удобнее выражать константы в восьмеричной или шестнадцатеричной нотации.
ОК, так вот что я пытаюсь понять. Теперь, я очень сильно смущен этой концепцией, и я просто ищу немного разъяснения, если кто-то хочет помочь мне в этом.
Когда в книге упоминается "установка всех битов" сейчас, все биты. Что именно немного. Разве это не только 0 или 1 на 2-й базе, другими словами, двоичный?
Если да, то почему в первом примере все биты, кроме "rightmost 2", равны 0? Это 2, потому что 3 - 1, взяв 3 из нашей постоянной?
Спасибо!