Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
RAFA91
Заблокирован
#1

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

17.06.2015, 15:09. Просмотров 976. Ответов 39
Метки нет (Все метки)

Всем доброго дня !

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

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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2015, 15:09
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Операции с битами данных (C++):

Операции с битами
Напишите программу, которая принимает с клавиатуры целое число типа int и ...

Операции с битами в c++
Помогите начинающему. Объясните пожалуйста как работает данная функция void...

Объединение. Операции с битами
Напишите программу, которая вычисляет произведение любого целого без знака...

операции для работы с битами
Есть ли в Visual C++ операторы выполняющие операции для работы с битами(сдвиг...

Битовые операции с разными типа данных
Здравствуйте. В голове возник такой странный вопрос, а мб и не странный....

Класс «Дата» - поля данных и перегруженные операции
Привет! ребят помогите с заданием:&quot; Класс «Дата» должен включать поля данных:...

39
castaway
Эксперт С++
4926 / 3033 / 453
Регистрация: 10.11.2010
Сообщений: 11,089
Записей в блоге: 10
Завершенные тесты: 1
27.06.2015, 16:40 #21
<<, >>
1
RAFA91
Заблокирован
28.06.2015, 14:38  [ТС] #22
написал так
C++
1
<< x;
получил ошибку

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

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

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

Не по теме:

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

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

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

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

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

Не по теме:

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

0
castaway
29.06.2015, 14:23
  #33

Не по теме:

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

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

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

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

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

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

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

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

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

при выполнении логического И 11111110 & 00000001 получим 00000000 все 1 превратили в 0
0
01.07.2015, 12:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2015, 12:41
Привет! Вот еще темы с решениями:

При вводе данных программа пропускает операции cin
Описать структуру с именем note, содержащую следующие поля:  фамилия, имя; ...

работа с битами
доброй ночи, форумчане, необходима ваша помощь) как и всем тут... вот изучаю...

Работа с битами
три раза писал но все равно не получается((( 1-)Ввести последовательность из 8...

Работа с битами.
помогите!! как писать эту на программе с++ Ввести последовательность из 8...


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

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

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