Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nickoliver
0 / 0 / 0
Регистрация: 19.03.2013
Сообщений: 14
#1

Задачка на классы (Создать методы, выполняющие поразрядные операции) - C++

19.03.2013, 16:18. Просмотров 391. Ответов 5
Метки нет (Все метки)

Не смог сам разобраться..
Класс, хранящий 8 бит информации – байт флагов b1. Создать методы, выполняющие
поразрядное отрицание "~" хранимого байта, а также операции поразрядное И "&",
ИЛИ "|" и исключающее ИЛИ "^" с вводимым байтом b2

Помогите кто чем сможет )
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2013, 16:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задачка на классы (Создать методы, выполняющие поразрядные операции) (C++):

Поразрядные операции - C++
Есть 16-е число, например N=0xC5D612F7, помогите убрать единицу в старшем бите у C и F, используя поразрядные операции на языке Си. Я даже...

Поразрядные операции - C++
Написать функцию, которая в числе x устанавливает 0 в n бит, находящихся справа от позиции p, остальные биты остаются без изменения.

Поразрядные операции - C++
Обьясните пожалуйста работу поразрядных операций (&, |, ^, <<, >>, ~). Например, n=n&0177; - обнуляет все биты переменной N, кроме младших...

Поразрядные операции - C++
Помогите пожалуйста доделать программу, :даны два int числа: N1 = ABCD и N2 = EFGH, где AB…GH – 16 – ричные цифры. Образовать long число...

Поразрядные операции - C++
Здравствуйте. Объясните, пожалуйста, есть задача: выполнить поразрядное «или» 0-5 разрядов В и 0-3 разрядов С, сдвинутых вправо на 2...

Поразрядные операции - C++
Даны два int-числа: N1 = ABCD и N2 = EFGH, где AB…GH – 16 – ричные цифры. Образовать long-число DEGHDABF, используя только поразрядные...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
fjay69
85 / 85 / 1
Регистрация: 26.10.2012
Сообщений: 248
19.03.2013, 16:25 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class byte
{
  public:
    char byte1;
    char invert()
    { return (~byte1); }
    char and(char byte2)
    { return (byte1&byte2); }
    char or(char byte2)
    { return (byte1|byte2); }
    char xor(char byte2)
    { return (byte1^byte2); }
};
1
nickoliver
0 / 0 / 0
Регистрация: 19.03.2013
Сообщений: 14
19.03.2013, 16:34  [ТС] #3
Цитата Сообщение от fjay69 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class byte
{
  public:
    char byte1;
    char invert()
    { return (~byte1); }
    char and(char byte2)
    { return (byte1&byte2); }
    char or(char byte2)
    { return (byte1|byte2); }
    char xor(char byte2)
    { return (byte1^byte2); }
};
Спасибо огромное, а byte1 и byte2 - это флаги я так понимаю ? Каким образом их заполнять ? И где прописан тот факт, что класс хранит 8бит ? ответьте пожалуйсто, а то я не разобрался в классах вообще ни капли
0
fjay69
85 / 85 / 1
Регистрация: 26.10.2012
Сообщений: 248
19.03.2013, 16:46 #4
byte1 и byte2 - это символьные переменные. Как раз таки размером 1 байт.
C++
1
2
3
4
5
byte newByte;//newByte - имя объекта класса byte
newByte.byte1='a';//или cin>>newByte.byte1;
char byte2;//объявляем второй байт 
cin>>byte2;//инициализируем
cout<<newByte.xor(byte2);//вызов метода
1
nickoliver
0 / 0 / 0
Регистрация: 19.03.2013
Сообщений: 14
19.03.2013, 17:09  [ТС] #5
Цитата Сообщение от fjay69 Посмотреть сообщение
byte1 и byte2 - это символьные переменные. Как раз таки размером 1 байт.
C++
1
2
3
4
5
byte newByte;//newByte - имя объекта класса byte
newByte.byte1='a';//или cin>>newByte.byte1;
char byte2;//объявляем второй байт 
cin>>byte2;//инициализируем
cout<<newByte.xor(byte2);//вызов метода
Разобрался, примного блпгодарен
0
nickoliver
0 / 0 / 0
Регистрация: 19.03.2013
Сообщений: 14
08.04.2013, 17:18  [ТС] #6
Всем доброго времени суток. Сижу мучаюсь, написал программку, а она гору ошибок выдала, помогите кто чем сможет, буду примного благодарен. Условие : Класс, хранящий 8 бит информации – байт флагов b1. Создать методы, выполняющие
поразрядное отрицание "~" хранимого байта, а также операции поразрядное И "&",
ИЛИ "|" и исключающее ИЛИ "^" с вводимым байтом b2
Программа :
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
#include "stdafx.h"
#include <iostream>
using namespace std;
struct byteq {
    int b0:1;int b1:1;int b2:1;int b3:1;int b4:1;int b5:1;int b6:1;int b7:1;}
char s1[8];
char s[8];
void lol(){
    byteq x;
    x.b0=1;x.b1=1;x.b2=1;x.b3=1;x.b4=1;x.b5=1;x.b6=1;x.b7=1;
    
    s1[0]=x.b0;s1[1]=x.b1;s1[2]=x.b2;s1[3]=x.b3;s1[4]=x.b4;s1[5]=x.b5;s1[6]=x.b6;s1[7]=x.b7;
}   
 
 
class byte
{
private: char byte1;
  public:
//    byte() // конструктор
    //  {}
      //void set (char n_byte1) { 
//byte1=n_byte1;}
//~byte() { }
 char invert();
 
//char and(char s1)
    { return (s[0]&s1[0]);return (s[0]&s1[0]);return (s[1]&s1[1]);return (s[2]&s1[2]);return (s[3]&s1[3]);return (s[4]&s1[4]);return (s[5]&s1[5]);return (s[6]&s1[6]);return (s[7]&s1[7]); }
    char or(char byte2)
    { return (s[1]|s1[1]); return (s[0]|s1[0]); return (s[2]|s1[2]);return (s[3]|s1[3]);return (s[4]|s1[4]);return (s[5]|s1[5]);return (s[6]|s1[6]);return (s[7]|s1[7]); }
    char xor(char byte2)
    { return (s[0]^s1[0]); return (s[1]^s1[1]); return (s[2]^s1[2]); return (s[3]^s1[3]); return (s[4]^s1[4]); return (s[5]^s1[5]); return (s[6]^s1[6]); return (s[7]^s1[7]); }
}
void main(){ char c; 
byteq y;
byte newByte;//newByte - имя объекта класса byte
cout<<"vvedite peremennuyu 1 \n";
cin>>c; // или newByte.byte1='a';
cout<<"vvedite peremennuyu 2 \n";
//newByte.set(c);
//char byte2;//объявляем второй байт 
//cin>>byte2;//инициализируем
char s[8];
cin>>s;
y.b0=s[0];y.b1=s[1];y.b2=s[2];y.b3=s[3];y.b4=s[4];y.b5=s[5];y.b6=s[6];y.b7=s[7];
cout<<"kakaya operaciya ? \n 1-and\n 2-or\n 3-xor \n";
int i;
cin>>i;
if(i=1) for (i;i<8;i++) cout<<newByte.and(s1[i]);//вызов метода
else if(i=2)  for (i;i<8;i++) cout<<newByte.or(s1[i]);//вызов метода
else if(i=3)  for (i;i<8;i++) cout<<newByte.xor(s1[i]);//вызов метода
else cout<<"oshibka";
 
}
Заранее спасибо ))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2013, 17:18
Привет! Вот еще темы с ответами:

поразрядные операции - C++
Народ, помогите пожалуйста решить задачу. Задание на скрине. Заранее спасибо.

поразрядные операции - C++
помогите пожалуйста решить следущую задачу: даны два int-числа: N1 = АBCD и N2 = EFGH, где AB…GH – 16-ричные цифры, ПОп –...

Поразрядные операции - C++
Запрограммировать изменение четырехбайтного числа (unsigned int) так, чтобы байт последовательно заполнялся сначала единицами, а затем...

Поразрядные операции (&,|,^) - C++
Здравствуйте! Объясните мне начинающему тогодуму как тут получается на выходе , а то я что-то не соображу #include &lt;iostream.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.04.2013, 17:18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru