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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Chelioss
181 / 181 / 4
Регистрация: 08.01.2011
Сообщений: 1,137
#1

Битовая операция -> - C++

29.05.2011, 16:20. Просмотров 1533. Ответов 5
Метки нет (Все метки)

Что делает операция ->
К примеру, есть структура:
C++
1
2
3
4
5
struct BIT{ unsigned int cod1:3;
                                               :1;
                       unsigned int cod2 : 3;
                                               : 1;
                      };
То можно делать так:
C++
1
2
3
 BIT* p = (BIT*) &word; // word - типа char
 if (p->cod1 ==  p->cod2)
    ...
Это обращение к участку памяти(или как правильно сказать?)?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2011, 16:20
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Битовая операция -> (C++):

Битовая операция с отрицательным числом - C++
Есть такой код int main() { int k = 12; cout << (k & -k); return 0; } Выводит этот код

Битовая операция "ИЛИ" эквивалентна операции сложения для двух целых чисел? - C++
Всем привет. Скажите, пожалуйста, битовая операция "ИЛИ" эквивалентна операции сложения для двух целых чисел?

64-битовая строка - C++
Необходимо реализовать структуру 64-битовой строки состоящей из двух unsigned long полей, с последующей возможностью использования битовых...

Битовая маска - C++
Как в шифровании битовыми перестановками применить маску?

Битовая арифметика - C++
Почему при: int myVar = 15, mask = 0x00 00 00 01; //выделил разряды printf("%d", myVar & mask); Я получаю -1? Конечно, я мог бы...

Битовая сортировка! - C++
Всем привет. Нужно написать реферат по теме "Битовая сортировка". Такого в инете, а также Википедиях и прочих джерелах даже примерно не...

5
ValeryLaptev
Эксперт С++
1048 / 827 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
29.05.2011, 16:22 #2
Это доступ к элементу структуры через указатель на структуру.
1
Chelioss
181 / 181 / 4
Регистрация: 08.01.2011
Сообщений: 1,137
29.05.2011, 16:25  [ТС] #3
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Это доступ к элементу структуры через указатель на структуру.
А чем отличается p->cod1 от p.cod1? И можно ли в первом и во втором случае выйти за границу?
0
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
29.05.2011, 16:29 #4
а почему битовая?
1
Chelioss
181 / 181 / 4
Регистрация: 08.01.2011
Сообщений: 1,137
29.05.2011, 16:33  [ТС] #5
Цитата Сообщение от pito211 Посмотреть сообщение
а почему битовая?
Может и не битовая, просто в первые встретился с этим при работе с битами.
0
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
29.05.2011, 16:42 #6
Цитата Сообщение от Chelioss Посмотреть сообщение
p->cod1 от p.cod1
в первом случае р это указатель, сначала ты должен выделить память и проинициалировать его с помощью new, прежде чем обращаться к его данным и методам. А потом удалить с помощью delete. То есть ты сам можешь контролировать время жизни объекта. А во втором случае
C++
1
2
3
4
5
6
7
8
{
   BIT p;
    //something code
   {
       //something code
   }
   //something code
} <- здесь будет вызван деструктор для р
то есть ты не можешь во втором случае кнтроировать время жизни объекта.

p.s. Чё нигде не соврал?

Добавлено через 38 секунд
не к битам никакого отношения она не имеет

Добавлено через 5 минут
если тебя смущает такая запись
C++
1
p->cod1
то можно заменить её на
C++
1
(*p).cod1
скобки обязательны, потому что префиксные операторы связаны слабее. А так эти две записи вроде бы эквивалентны
2
29.05.2011, 16:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2011, 16:42
Привет! Вот еще темы с ответами:

С, битовая запись - C++
Всем доброго времени суток, после 3 дней поиска информации решил попытать счастье, задав вопрос у форумчан. так же читал много подобных...

битовая маска - C++
как использовать битовую маску? за пример можно взять выделение k-того разряда из n-разрядного числа (в пофиг какой системе исчесления).

Битовая инверсия - C++
Доброго времени суток! Я что-то запутался с побитовой инверсией. В коде прописываю int a=5; cout&lt;&lt;~a&lt;&lt;endl; Это же...

битовая маска - C++
надо разработать функцию проверки правильности битовой маски. 32-х битная “маска” считается действительной, если ее двоичное...


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

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

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