Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C++.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.47 Mб
Скачать

2) Бинарные операции, продолжение

    n-ная по счету цифра в двоичном представлении числа называется n-ным битом(1-ая цифра называется 1 битом, 483 цифра называется 483 битом). Будем называть n-ый бит числа a в двоичной системе счисления, как a[n].

Вот несколько примеров битовых операций используемых в С++:

1) | — битовый «или», скажем a | b = c, тогда:

c[n] равен 1, если или a[n] = 1, и/или b[n] = 1

c[n] равен 0 в остальных случаях.

Пример:

20[10] | 17[10] = 10001[2] | 10100[2] = 10101[2] = 21[10].

2) ^ — битовый «исключающий или», скажем a | b = c, тогда:

c[n] равен 1, если или a[n] = 1, или b[n] = 1

c[n] равен 0 в остальных случаях.

Пример:

20[10] | 17[10] = 10001[2] | 10100[2] = 00101[2] = 5[10].

3) & — битовый «и», скажем a | b = c, тогда:

c[n] равен 1, если и a[n] = 1, и b[n] = 1

c[n] равен 0 в остальных случаях.

Пример:

20[10] | 17[10] = 10001[2] | 10100[2] = 10000[2] = 16[10].

4) << — битовый «сдвиг влево», т.е a << b это добавление b нулей

в конец двоичного представления числа a.

Пример:

47[10] << 2 = 101111[2] << 2 = 10111100[2] = 188[10].

Также стоит добавить, что a << b = a * 2b, для чисел в десятичной системы счисления.

5) >> — битовый «сдвиг вправо», т.е a >> b это удаление последних

b цифр в двоичном представлении числа a.

Пример:

47[10] >> 2 = 101111[2] >> 2 = 1011[2] = 10[10].

Также стоит добавить, что a >> b = a / 2b с округлением вниз, для чисел в десятичной системы счисления.

Не путайте битовые сдвиги и разделители в cin и cout!!!

Чтобы написать битовый сдвиг в cout-е, поставте его в скобки, например:

1

cout << (a<<2) << "\n";

Поздравляю вы осилили эту статью(или просто прокрутили вниз)!

Для разнообразия немного кода:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

# include <iostream>

  using namespace std;

  int main() {

      cout << "Enter two numbers A and B: \n";

      cin >> a >> b;

      cout << "A + B = " << a + b <<"\n";

      cout << "A - B = " << a - b <<"\n";

      cout << "A * B = " << a * b <<"\n";

      cout << "A / B = " << a / b <<"\n";

      cout << "A | B = " << a | b <<"\n";

      cout << "A ^ B = " << a ^ b <<"\n";

      cout << "A & B = " << a & b <<"\n";

      cout << "A << B = " << (a << b) <<"\n";

      cout << "A >> B = " << (a >> b) <<"\n";

      system ("pause");

      return 0;

 }

Выводящий результаты всех математических и битовых операций для двух чисел.

Число B не должно быть равно нулю, так как компиляторы не поддерживают деление на нуль.

Спасибо, до скорого!

C++. Урок 5. Библиотека cmath

Опубликовано 21.10.2012 автором admin

    На прошлом уроке мы забили себе голову всякими модулями и бинарными операциями, поэтому сегодня тема будет полегче, а конкретнее функции для работы с вещественными числами.

Как обычно, вот прошлые уроки:

    Для начала давайте подключим библиотеку cmath, т.е напишем:

1

# include <cmath>

    Теперь мы можем писать наши функции, а компилятор ругаться не будет. Начнем с корней и степеней:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]