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

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.91
person_il
0 / 0 / 0
Регистрация: 05.09.2009
Сообщений: 22
#1

Как работать с битами? - C++

10.11.2009, 21:00. Просмотров 2654. Ответов 7
Метки нет (Все метки)

Подскажите, пожалуйста... please...

У меня дано число типа WORD.
Как мне просмотреть первый и последующие биты в этом числе?
И если возможность их изменения?

Намного благодарен!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2009, 21:00     Как работать с битами?
Посмотрите здесь:

C++ Работа с битами
C++ Работа с битами.
Работа с битами. C++
Работа с битами C++
C++ Работа с битами
Работа с битами C++
работа с битами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
outoftime
║XLR8║
506 / 428 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
10.11.2009, 21:58     Как работать с битами? #2
переведи в 2-ичную систему счисления, а там и видно будет..
Rififi
2336 / 1051 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
10.11.2009, 22:00     Как работать с битами? #3
person_il,

У меня дано число типа WORD.
Как мне просмотреть первый и последующие биты в этом числе?

WORD w;
int bit0 = w&1;
int bit1 = (w&2) >> 1;
...

И если возможность их изменения?
есть
person_il
0 / 0 / 0
Регистрация: 05.09.2009
Сообщений: 22
10.11.2009, 23:45  [ТС]     Как работать с битами? #4
Можешь показать, а то я только разбираюсь с возможностями программирования на битах...
Спасибо огромное!!!

Добавлено через 1 час 17 минут
Я с тобой не согласен. Я нашел битовое множество (
C++
1
#include "bitset"
), которое показывает совсем другие значения. Единственный минус - это то что я не могу обратно перевести это значение в тип WORD.
Вот пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main()
{ char tmp;
w=15;
cout <<sizeof(WORD)*4 <<endl;
bitset <sizeof(WORD)*4> bMode (w);
cout << bMode[0] << " "<< bMode[1]<< " " << bMode[2] << " " << bMode[3]<<endl;
 
int bit0 = (w&1) >> 1;
int bit1 = (w&2) >> 1;
int bit2 = (w&3) >> 1;
int bit3 = (w&4) >> 1;
cout << bit0<<" "<< bit1<<" "<< bit2<<" "<< bit3<<endl;
cin >> tmp;
}
Rififi
2336 / 1051 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
10.11.2009, 23:48     Как работать с битами? #5
person_il,
Я с тобой не согласен.
с чем ты не согласен?

Я нашел битовое множество (
а оно никуда и не терялось, начнем с этого

Единственный минус ...
... в том, что пример неправильный. а так всё нормуль
person_il
0 / 0 / 0
Регистрация: 05.09.2009
Сообщений: 22
10.11.2009, 23:50  [ТС]     Как работать с битами? #6
ты не можешь объяснить мне поподробнее, а то я не могу въехать...
Rififi
2336 / 1051 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
10.11.2009, 23:50     Как работать с битами? #7
для этого существует такое понятие как "битовая маска"

например установка бита номер N
#define set_bit(v, N) ((v) | (1 << N))

сброс бита номер N
#define clear_bit(v, N) ((v) & ~(1 << N))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2009, 00:01     Как работать с битами?
Еще ссылки по теме:

Работа с битами C++
Операции с битами C++
C++ Как работать с указателями и как работать с ссылками
Работа с битами. Сдвиг бит в массиве переменных. О как C++
Операции с битами в c++ C++

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

Или воспользуйтесь поиском по форуму:
person_il
0 / 0 / 0
Регистрация: 05.09.2009
Сообщений: 22
11.11.2009, 00:01  [ТС]     Как работать с битами? #8
Насчет функций спасибо, только я говорил по поводу разных значений, которых выводятся на экран...
Просто по суди:
1 в битовом 1000
2 - 0100
3 - 1100
4 - 0010
а в твоем примере совсем по другому
1 - 0000
2 - 0110
3 - 0110
4 - 0002
Это же неверно!
Yandex
Объявления
11.11.2009, 00:01     Как работать с битами?
Ответ Создать тему
Опции темы

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