C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Как обратиться к биту переменной short?, Нужны фунции обращения к битам.
Александр
Отправлено: 25.04.2005, 08:36


Не зарегистрирован







Уважаемые профессионалы!

Подскажите, пожалуйста, функции побитного обращения к слову данных. Например в слове меня интересует только 1, 2, 7, 15 биты.
AVC
Отправлено: 25.04.2005, 08:46


Ветеран

Группа: Модератор
Сообщений: 1583



Если биты нумеровать с 0 от младшего к старшему
результат = слово & 0x02; — анализировать 1-й бит
результат = слово & 0x04; — анализировать 2-й бит
результат = слово & 0x80; — анализировать 7-й бит
результат = слово & 0x8000; — анализировать 15-й бит
Александр
Отправлено: 25.04.2005, 09:13


Не зарегистрирован







А результат — Это переменная типа Boolean ?
Konstantine
Отправлено: 25.04.2005, 09:54


Мастер участка

Группа: Модератор
Сообщений: 545



вообще-то Результат — это переменная того числового типа, которым являются операнды, но если туда поставить булеву, то результатом будет false, если нулевое значение, и true, если ненулевое...
Treumer
Отправлено: 25.04.2005, 09:56


Станционный диспетчер

Группа: Участник
Сообщений: 92



QUOTE (Александр @ 25/04/2005, 09:13)
А результат — Это переменная типа Boolean ?

Результат будет — строго говоря тот же short int.
Но если его присвоить переменной типа BOOL — то будет — в результате операции приведения типов — boolean.

Ох уж эти паскальщики smile.gif
Бесконечно далеки они от природы smile.gif
Георгий
Отправлено: 25.04.2005, 22:58


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



QUOTE (Александр @ 25/04/2005, 08:36)
Например в слове меня интересует только 1, 2, 7, 15 биты.

CODE
union{
DWORD data;
struct{
DWORD a:1;
DWORD b:1;
DWORD dummy1 : 4;
DWORD c : 1;
DWORD dummy2 : 7;
DWORD d : 1;
}bits;
}coded_word;
coded_word.bits.a = 1;
coded_word.bits.b = 0;
coded_word.bits.c = 1;
coded_word.bits.d = 0;

вот, описав такую конструкцию, можно лёгко и просто работать с битами

Вернуться в Вопросы программирования в C++Builder