0 / 0 / 0
Регистрация: 15.06.2021
Сообщений: 3
1

Побитовые операции

15.06.2021, 06:05. Показов 377. Ответов 3
Метки c++ (Все метки)

Сделать описание программы
Препод сильно валит и просит все делать по методичке(объяснения), но его не устраивают эти объяснения

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#include <iostream>
#include <conio.h>
 
using namespace std;
 
struct bits
 
{
    bool b00 : 1;
    bool b01 : 1;
    bool b02 : 1;
    bool b03 : 1;
    bool b04 : 1;
    bool b05 : 1;
    bool b06 : 1;
    bool b07 : 1;
    bool b08 : 1;
    bool b09 : 1;
    bool b10 : 1;
    bool b11 : 1;
    bool b12 : 1;
    bool b13 : 1;
    bool b14 : 1;
    bool b15 : 1;
    bool b16 : 1;
    bool b17 : 1;
    bool b18 : 1;
    bool b19 : 1;
    bool b20 : 1;
    bool b21 : 1;
    bool b22 : 1;
    bool b23 : 1;
    bool b24 : 1;
    bool b25 : 1;
    bool b26 : 1;
    bool b27 : 1;
    bool b28 : 1;
    bool b29 : 1;
    bool b30 : 1;
    bool b31 : 1;
};
 
union dat
{
    unsigned int c;
    bits b;
};
 
void print_bits(dat d);
void print_logic(unsigned int c);
void shift_bits(dat d);
void shift_logic(unsigned int c);
 
int main()
{
    setlocale(LC_ALL, "RUS");
    dat d;
    d.c = 2147483647;
    print_bits(d);
    print_logic(d.c);
    shift_bits(d);
    shift_logic(d.c);
    _getch();
}
 
void print_bits(dat d)
{
    cout << d.b.b31 << d.b.b30 << d.b.b29 << d.b.b28 << d.b.b27 << d.b.b26 << d.b.b25 << d.b.b24 << " ";
    cout << d.b.b23 << d.b.b22 << d.b.b21 << d.b.b20 << d.b.b19 << d.b.b18 << d.b.b17 << d.b.b16 << " ";
    cout << d.b.b15 << d.b.b14 << d.b.b13 << d.b.b12 << d.b.b11 << d.b.b10 << d.b.b09 << d.b.b08 << " ";
    cout << d.b.b07 << d.b.b06 << d.b.b05 << d.b.b04 << d.b.b03 << d.b.b02 << d.b.b01 << d.b.b00 << " ";
    cout << d.c << endl;
}
 
void print_logic(unsigned int c)
{
    unsigned int mask = 1 << 31;
    for (int i = 0; i < 32; i++)
    {
        if ((mask & c) == 0)
            cout << "0";
        else
            cout << "1";
        mask >>= 1;
        if (i == 7 || i == 15 || i == 23)
            cout << " ";
    }
    cout << " " << c << endl;
}
 
void shift_bits(dat d)
{
    cout << endl << "поразрядный сдвиг " << endl;
 
    d.b.b00 = 1;
    print_bits(d);
    for (int i = 31; i >0; i--)
    {
        d.c += pow(2, i) - pow(2, i - 1);
        d.b.b31 = 1;
        print_bits(d);
    }
}
 
void shift_logic(unsigned int c)
{
    unsigned int mask = 0;
    cout << endl << "поразрядные логические операции " << endl;
    c = 2147483647;
    print_logic(c);
    for (int i = 0; i < 31; i++)
    {
        c >>= 1;
        c += pow(2, 31);
        c = c| mask;
        print_logic(c);
    }
 
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.06.2021, 06:05
Ответы с готовыми решениями:

Побитовые операции с++
1)Создать две консольные программы. Первая программа - ввод информации и шифрования указанным...

Побитовые операции
Здравствуйте, Подскажите пожалуйста, что тотникак не могу понять, что я делаю не так: сhar...

Побитовые операции
Помогите пожалуйста, никак не могу справиться с этой задачкой. Выделить из числа x поле шириной...

Побитовые операции
Требуется составить функцию кодировки и составления символа по принципу : Индексы переменных -...

3
Продавец времени
7128 / 4004 / 924
Регистрация: 12.03.2015
Сообщений: 18,830
15.06.2021, 08:48 2
Цитата Сообщение от GaLaCtI Посмотреть сообщение
его не устраивают эти объяснения
Меня, например, тоже.
Условие задачи-то где? Мы его угадать должны?
0
0 / 0 / 0
Регистрация: 15.06.2021
Сообщений: 3
15.06.2021, 13:53  [ТС] 3
Извиняюсь, вот условие
Запрограммировать изменение четырехбайтного числа так, чтобы ноль
перемещался от разряда к разряду слева направо.
0
Продавец времени
7128 / 4004 / 924
Регистрация: 12.03.2015
Сообщений: 18,830
15.06.2021, 14:02 4
C++
1
2
3
4
5
// в 32-битном числе x сброс в ноль бита номер bit 
unsigned clr_bit(const unsigned x, unsigned char bit)
{
  return (bit < 32) ? x & ~(1 << bit) : x;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.06.2021, 14:02
Помогаю со студенческими работами здесь

Побитовые операции в с++
здравствуйте! не могу понять, почему когда я применяю к числу a=0b01111101 (в десятичной форме...

Побитовые операции на с++ (<< и >>)
Подскажите пожалуйста, такая задача - побитовый сдвиг на заданное количество символов сдвигает...

Побитовые операции
Здравствуйте, суть задачи вот: Выполнить ввод с клавиатуры двух чисел типа short. Выделить байты...

Побитовые операции
Задача должна быть реализована в с++ но пришлось временно писать в дельфи. суть такая: входящие...

Побитовые операции
Задача: Ввести последовательность из 8 символов. Если символ – восьмеричная цифра, то заменить в...

Побитовые операции
Задание: Дано целое неотрицательное число. Определить количество составляющих его...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru