Программирование на С, С++. Станислава Солнечная
Чтение книги онлайн.

Читать онлайн книгу Программирование на С, С++ - Станислава Солнечная страница 4

СКАЧАТЬ 10 – это 1010 в двоичной системе счисления. С каждым битом числа выполняется операции логическое ИЛИ, и вместо этого бита ставится результат этой операции, смотри Рисунок 4.

      

      Рисунок 4

      Поразрядное И

      Пример:

      8 & 10 = 8

      8 – это 1000 в двоичной системе счисления, 10 – это 1010 в двоичной системе счисления. С каждым битом числа выполняется операции логическое И, и вместо этого бита ставится результат этой операции.

      Пример программы в Листинге 12.

      Листинг 12

      #include <iostream>

      using namespace std;

      void dv(int a)

      {

      int b[100];

      int i=0;

      while(a>1)

      {

      b[i]=a%2;

            a=(a-a%2)/2;

            i++;

      }

      b[i]=a;

      for(int j=i;j>=0;j–)

      cout<<b[j];

      }

      int main()

      {

      int a,b;

      int c;

      cin>>a>>b;

      c=a|b;

      cout<<endl;

      dv(a);

      cout<<" | ";

      dv(b);

      cout<<" = ";

      dv(c);

      c=a&b;

      cout<<endl;

      dv(a);

      cout<<" & ";

      dv(b);

      cout<<" = ";

      dv(c);

      return 0;

      }

      Ниже даны тесты для проверки задач программы.

      Тест 1

      a=10 b=8

      Результат

      1010 | 1000 =1010

      1010 & 1000 =1000

      Тест 2

      a=11 b=3

      Результат

      1011 | 11 = 1011

      1011 & 11 = 11

      Сдвиг влево

      Пример:

      10 << 2 = 1000

      Двоичная запись числа передвинется на 2 знака влево, на их место проставятся 0. Необходимо быть внимательными, так как в типе int и т.д. хранится ограниченное количество бит.

      Сдвиг вправо

      Пример:

      100 >> 2 = 1

      Двоичная запись числа передвинется на 2 знака вправо. 2 бита исчезнут.

      Одноместное поразрядное дополнение до единицы

      С каждым битом выполняется инверсия.

      Пример:

      x = ~8;

      8 – это 1000 в двоичной системе счисления, после инверсии с каждым битом: 1 меняется на 0, 0 на 1. При хранении числа, один бит отвечает за знак, поэтому знак числа тоже меняется. ~x=|~x|-1. Результат: ~8=-9.

      Комментарии

      Для красивого стиля и правил оформления кода, необходимо, чтобы в коде все функции, блоки и т.д. были расшифрованы. Комментарии бывают /*….*/ (все, что между косыми чертами и звездочкой есть комментарий), // (все, что после // и на одной строке есть комментарий), смотри Листинг 13.

      Листинг 13

      /*демонстративная программа*/

      #include<iostream>

      using namespace std;

      int main()

      {

      cout<<"Hello!"; СКАЧАТЬ