Основы VB.NET Урок 18. Побитовые операции
Побитовые операции, как ясно из названия, осуществляются над отдельными битами чисел, к которым они применяются. Т. е. числа переводятся в двоичную форму, после чего к битам, стоящим на одинаковых местах, применяется побитовая операция, и полученный результат опять приводится к исходному виду.
Всего побитовых операций 4 штуки:
| Операция |
Описание |
| And |
Побитовое И. Бит результата равен 1 только тогда, когда оба бита у операндов равны 1. |
| Or |
Побитовое ИЛИ. Бит результата равен 0 только тогда, когда оба бита у операндов равны 0. |
| Xor |
Побитовое исключающее ИЛИ. Бит результата равен 1, если бит только у одного операнда равен 1. Если же соответствующие биты либо оба равные 1, либо оба равны 0, то бит результата равен 0. |
| Not |
Побитовое отрицание. Применяется только к одному операнду, превращая его биты в противоположные (1 в 0, 0 в 1). |
Вот как, например, подсчитывается 10 And 12: 10 в двоичном виде будет 1010, 12 - 1100, при побитовом And 1 будут только в тех местах, где 1 содержится и у первого, и у второго операнда. Т. е. в результате мы получим 1000, что в десятичном виде равно 8. Таим образом 10 And 12 даст 8.
Вот примеры на остальные побитовые операции:
Dim a, b, c, d As Integer
a = 12 And 10
b = 12 Or 10
c = 12 Xor 10
d = Not 10
Console.WriteLine("{0}, {1}, {2}, {3}", a, b, c, d)
На экране приведенный фрагмент покажет 8, 14, 6, -11. Первые три числа достаточно предсказуемы, последнее же (-11) получено через двоичное дополнение (именно так и хранятся отрицательные числа в компьютере). Действительно, если мы побитово сложим некоторое число A и Not A, то мы должны получить все единички. Но это в десятичном представлении эквивалентно минус одному. Т. е. A и Not A даст -1, A в нашем случае равно 10, значит Not A равно -11. Все правильно.
|