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

Операции с битами данных - C++

Восстановить пароль Регистрация
 
 
RAFA91
Заблокирован
17.06.2015, 15:09     Операции с битами данных #1
Всем доброго дня !

Подскажите пожалуйста как произвести побитовое И ?

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
#include <iostream>
#include <conio.h>
 
 
using namespace std;
 
 
int main()
 
{
    unsigned short  x = 65535;
 
    unsigned short  y = 65535;
 
    unsigned short  z;
 
    x & y;
 
    cout<<"\n****** "<<sizeof(x)<<" "<<x<<" "<<y<<"\n";
 
    getch();
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2015, 15:09     Операции с битами данных
Посмотрите здесь:

Работа с битами. C++
C++ Работа с битами
Класс «Дата» - поля данных и перегруженные операции C++
Работа с битами C++
операции для работы с битами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
27.06.2015, 16:40     Операции с битами данных #21
<<, >>
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
RAFA91
Заблокирован
28.06.2015, 14:38  [ТС]     Операции с битами данных #22
написал так
C++
1
<< x;
получил ошибку

написал так
C++
1
>> x;
получил ошибку
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
28.06.2015, 14:46     Операции с битами данных #23
Что и на сколько ты хотел сдвинуть в своих примерах?

Добавлено через 6 минут
Слева - значение, справа - количество бит.
RAFA91
Заблокирован
28.06.2015, 14:50  [ТС]     Операции с битами данных #24
к примеру хочу сдвинуть значение x на 5 позиций влево.

так вроде ошибок нет
C++
1
x << 5;
но нечего не меняется в х (((
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
28.06.2015, 14:55     Операции с битами данных #25
Ты когда числа вот так складываешь:
C++
1
x + 100
x меняется?

Не по теме:

Что ты делал два года на форуме?

RAFA91
Заблокирован
28.06.2015, 15:04  [ТС]     Операции с битами данных #26
Цитата Сообщение от castaway Посмотреть сообщение
Ты когда числа вот так складываешь:
тоесть надо написать что-то типо этого
C++
1
 x = x << 5;
?
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
28.06.2015, 15:25     Операции с битами данных #27
Да, типо этого.
RAFA91
Заблокирован
28.06.2015, 15:32  [ТС]     Операции с битами данных #28
спасибо Вам большое за помощь !

буду думать !
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
28.06.2015, 15:54     Операции с битами данных #29
Цитата Сообщение от RAFA91 Посмотреть сообщение
спасибо Вам большое за помощь !
Пожалуйста.

Цитата Сообщение от RAFA91 Посмотреть сообщение
буду думать !
Это обязательно. Самое главное не забывать об этом.
RAFA91
Заблокирован
29.06.2015, 13:46  [ТС]     Операции с битами данных #30
а есть что-то типо вдвигания единицы в младший или старший разряд ?

или это делается программно установкой соответствующего бита ?
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
29.06.2015, 13:56     Операции с битами данных #31
Делается вручную.
C++
1
2
3
int value = 123;
int bit = 1;
value = (value << 1) | (bit & 1);
Kuzia domovenok
29.06.2015, 14:04
  #32

Не по теме:

у меня такое чувство, что автор живёт в галактике Гаргантюа у сверхмассивной чёрной дыры и пока на Земле проходит полмесяца, на его планете он только начинает изучать один оператор С++ - сдвига.

castaway
29.06.2015, 14:23
  #33

Не по теме:

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
пока на Земле проходит полмесяца, на его планете он только начинает изучать один оператор С++ - сдвига.
))))))))))))

RAFA91
Заблокирован
29.06.2015, 14:38  [ТС]     Операции с битами данных #34
Цитата Сообщение от castaway Посмотреть сообщение
Делается вручную.
а зачем делать это ?

C++
1
bit & 1
расписал по порядку для понимания

C++
1
2
3
value = value << 1 //сдвиг на 1 позицию влево
 
value =  value | bit;
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
29.06.2015, 14:49     Операции с битами данных #35
Цитата Сообщение от RAFA91 Посмотреть сообщение
а зачем делать это ?
Чтобы выделить именно один младший бит переменной bit. Вдруг там число больше 1 !?
RAFA91
Заблокирован
29.06.2015, 17:09  [ТС]     Операции с битами данных #36
так тут же указанно что

C++
1
int bit = 1;
C++
1
bit = bit & 1
bit всеравно будет равен 1
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
29.06.2015, 19:24     Операции с битами данных #37
Цитата Сообщение от RAFA91 Посмотреть сообщение
так тут же указанно что
Всё верно, в случае с моим примером можно не выделять младший бит, но если младший бит берётся из переменной с неизвестным значением, то выделять его придётся.
RAFA91
Заблокирован
30.06.2015, 12:19  [ТС]     Операции с битами данных #38
Цитата Сообщение от castaway Посмотреть сообщение
но если младший бит берётся из переменной с неизвестным значением, то выделять его придётся.
это хорошо если он равен 1 . а если 0 ?

тогда логическое И даст 0 в младшем бите.

в остальных тоже.
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
30.06.2015, 12:24     Операции с битами данных #39
Цитата Сообщение от RAFA91 Посмотреть сообщение
это хорошо если он равен 1 . а если 0 ?
тогда логическое И даст 0 в младшем бите.
Всё правильно. Это же двоичная арифметика.

Цитата Сообщение от RAFA91 Посмотреть сообщение
в остальных тоже.
Не понял что ты имел в виду.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2015, 12:41     Операции с битами данных
Еще ссылки по теме:

Работа с битами C++
Операции с битами C++
Объединение. Операции с битами C++

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

Или воспользуйтесь поиском по форуму:
RAFA91
Заблокирован
01.07.2015, 12:41  [ТС]     Операции с битами данных #40
Цитата Сообщение от castaway Посмотреть сообщение
Не понял что ты имел в виду.
ну если к примеру bit = 254; пусть оно 8 - битное

это в двоичной системе будет 11111110

при выполнении логического И 11111110 & 00000001 получим 00000000 все 1 превратили в 0
Yandex
Объявления
01.07.2015, 12:41     Операции с битами данных
Ответ Создать тему
Опции темы

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