progs.biz  
Начало>VB.NET>Основы>Урок 18
C#
VB.NET
Visual C++.NET
ASP.NET
Visual C++ 6
WinAPI
C/C++
Delphi
C++ Builder
Java
SQL
PHP
DirectX
Visual Basic 6.0
Ассемблер
Интернет
Сист. прогр-ние
Pocket PC
Обзор книг
Обзор программ

Б. Ивьен и др. Visual Basic .NET. Библия пользователя
Б. Ивьен и др. Visual Basic .NET. Библия пользователя
Заказать на Озоне



Яндекс-цитирования

Основы 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. Все правильно.

Рассылки нашего сайта на Subscribe.Ru
Visual C++, MFC
C# и .NET
VB.NET
ASP.NET new!
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


 
 
Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2008 сайт progs.biz
© 2002-2008 Игорь Алексеев