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

C++

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

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

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

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

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

Намного благодарен!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2009, 21:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как работать с битами? (C++):

Как работать с SIM-картой? - C++
Доброго времени суток. Как можно с помощью C++ работать с SIM-картой. Ну например, узнать сколько денег на ней, повысить сумму понизить....

PlayGround SDK как работать с ним? - C++
Есть инсталяха PlayGround SDK. Установил его, а что дальше делать не знаю. Документацию читаю на английском так там сходу какие-то примеры...

Как работать с системным реестром в Windows XP - C++
Скоко не слонялся по просторам нашего могучего интернета в поисках подробного описания функций RegCloseKey RegCreateKeyExA ...

Как работать с xpath используя библиотеку xmlpp? - C++
Мучаюсь весь день с xPath... Не могу понять как с ним работать? Допустим такой код: std::string StatusProfile =...

Как заставить проэкт работать в Visual Studio 2010? - C++
Доброго времени суток! Люди пожалуста помогите, вчера поставил себе Microsoft Visual Studio 2010. Создал новый проэкт C++, Win32 Console...

как работать с каждой цифрой четырехзначного числа по отдельности. - C++
Вот есть задача на с++. Но не знаю с чего начать... как работать с каждой цифрой четырехзначного числа по отдельности.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
outoftime
║XLR8║
510 / 432 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
10.11.2009, 21:58 #2
переведи в 2-ичную систему счисления, а там и видно будет..
0
Rififi
2359 / 1054 / 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;
...

И если возможность их изменения?
есть
0
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;
}
0
Rififi
2359 / 1054 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
10.11.2009, 23:48 #5
person_il,
Я с тобой не согласен.
с чем ты не согласен?

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

Единственный минус ...
... в том, что пример неправильный. а так всё нормуль
0
person_il
0 / 0 / 0
Регистрация: 05.09.2009
Сообщений: 22
10.11.2009, 23:50  [ТС] #6
ты не можешь объяснить мне поподробнее, а то я не могу въехать...
0
Rififi
2359 / 1054 / 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))
0
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
Это же неверно!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2009, 00:01
Привет! Вот еще темы с ответами:

Как сделать так, чтобы две разные программы могли работать с одной и той же областью оперативной памяти? - C++
Собственно даже незнаю куда копать. Пробовал в одной программе вывести указатель на массив, а в другой указателю присвоить это значение...

Как работать с 0.02 - C++ Builder
Добрый день! Прошу вас помочь. Имеем исходник как умножать, делить и т.д числа с запятой? Плиз хелп... #include &lt;vcl.h&gt; #pragma...

Как работать с Shape? - C++ Builder
Недавно начал изучать C++ Builder. Объясните мне, как работать с Shape?. То есть я создаю шейп(допустим круг), как мне к нему прикрепить...

Как работать с мышью - C++ Builder
Есть ли в Builder функции вроде MouseDown или MouseUp, если да то как ими пользоваться?


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

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

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