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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
RAFA91
Заблокирован
#1

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

17.06.2015, 15:09. Просмотров 849. Ответов 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++):

Операции с битами в c++ - C++
Помогите начинающему. Объясните пожалуйста как работает данная функция void show_memory(unsigned char *a, int size) { for (int i =...

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

Объединение. Операции с битами - C++
Напишите программу, которая вычисляет произведение любого целого без знака числа на выражение 2 n . Программа должна предоставлять...

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

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

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

39
castaway
19.06.2015, 19:17     Операции с битами данных
  #16

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
уже попадался, да?
Было дело

0
Kastaneda
Форумчанин
Эксперт С++
4655 / 2863 / 228
Регистрация: 12.12.2009
Сообщений: 7,276
Записей в блоге: 2
Завершенные тесты: 1
19.06.2015, 21:02 #17
Croessmah, можно как-нибудь так
C++
1
2
3
4
5
6
7
8
9
10
11
template < typename T >
inline bool get_bit ( const T & number , unsigned short index, typename std::enable_if<std::is_integral<T>::value>::type* = nullptr )
{
    return (1<<index)&number ;
}
 
template < typename T >
inline bool get_bit ( const T & number , unsigned short index )
{
    static_assert(false, "Are you crazy? Do you want to have operator & with non integer type?");
}
правда для корректной работы/компиляции это совершенно лишнее, но так хоть вменяемое сообщение в логе компиляции будет
1
RAFA91
Заблокирован
21.06.2015, 14:21  [ТС] #18
Цитата Сообщение от Croessmah Посмотреть сообщение
Всё зависит от типа T
у меня тип один
C++
1
unsigned short
думаю 2 байта мне хватит. все же 16 флагов имею.
0
Croessmah
Эксперт CЭксперт С++
13420 / 7574 / 855
Регистрация: 27.09.2012
Сообщений: 18,648
Записей в блоге: 3
Завершенные тесты: 1
21.06.2015, 14:26 #19
Цитата Сообщение от Kastaneda Посмотреть сообщение
можно как-нибудь так
Цитата Сообщение от Croessmah Посмотреть сообщение
Всё зависит от типа T
Это я к тому, что если тип T - какой-то свой тип, с перегруженными операторами (например, какой нибудь MySuperBicycle_LongNumber), то сложность врядли будет O(1)
0
RAFA91
Заблокирован
27.06.2015, 15:49  [ТС] #20
Подскажите пожалуйста , как произвести логический сдвиг влево - вправо ?
0
castaway
Эксперт С++
4884 / 3019 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
27.06.2015, 16:40 #21
<<, >>
1
RAFA91
Заблокирован
28.06.2015, 14:38  [ТС] #22
написал так
C++
1
<< x;
получил ошибку

написал так
C++
1
>> x;
получил ошибку
0
castaway
Эксперт С++
4884 / 3019 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 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
Эксперт С++
4884 / 3019 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 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
Эксперт С++
4884 / 3019 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
28.06.2015, 15:25 #27
Да, типо этого.
1
RAFA91
Заблокирован
28.06.2015, 15:32  [ТС] #28
спасибо Вам большое за помощь !

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

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

или это делается программно установкой соответствующего бита ?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2015, 13:46
Привет! Вот еще темы с ответами:

Работа с битами - C++
три раза писал но все равно не получается((( 1-)Ввести последовательность из 8 символов. Сравнить 5-й и 6-й биты каждого символа. Если...

Работа с битами. - C++
Здрасте. Дана задача: Определить на сколько в числе А больше значущих битов, что равны единице, чем битов, что равны нулю. Помогите...

Работа с битами - C++
Я уже задолбался... :wall: Может мне кто нибудь подскажет как из 00111010 (58) получить 00001010 (10) хотя бы каким методом... код...

Работа с битами - C++
Не могу понять, почему не правильно работает программа. Программа зашифровывает строку, выводит, потом расшифровывает и выводит. ...


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

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

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