Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 10.10.2019, 10:27   #1
Крупнов
Новичок
Джуниор
 
Регистрация: 02.06.2018
Сообщений: 2
По умолчанию С/С++ Как проверить наличие байта, используя побитовые операции?

У меня переменная состоит из 8 байтов. Необходимо проверить, встречается ли где-то среди них какой-то кокретный байт, не используя парсинг.
Например:

Код:
long long myVar = 0x04f8f302af05f5ff;     // 04 f8 f3 02 af 05 f5 ff

bool founded = isByteInVar(myVar, 0xaf); // должен вернуть true, т.к. 0xaf есть в myVar
Код:
bool isByteInVar(long long fromVar, char checkByte)
{
       ?????
}

Я пробовал с маской

Код:
long long a    = 0x04f8f302af05f5ff;
long long mask = 0xafafafafafafafaf;
Но никак не получалось добиться того, чтобы если 0xaf присутствовал в моей переменной, то значение было > 0, если нет, то = 0

Последний раз редактировалось Крупнов; 10.10.2019 в 10:36.
Крупнов вне форума Ответить с цитированием
Старый 10.10.2019, 10:35   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,218
По умолчанию

делаем xor между a и mask а потом ищем нулевой байт:
http://graphics.stanford.edu/~seande...tml#ZeroInWord
waleri вне форума Ответить с цитированием
Старый 10.10.2019, 10:40   #3
Крупнов
Новичок
Джуниор
 
Регистрация: 02.06.2018
Сообщений: 2
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
делаем xor между a и mask а потом ищем нулевой байт:
http://graphics.stanford.edu/~seande...tml#ZeroInWord
Спасибо большое!
Крупнов вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Си, побитовые операции. goto ∞ Общие вопросы C/C++ 6 04.11.2017 21:14
Побитовые операции alexusankov C# (си шарп) 6 01.12.2013 21:38
Побитовые операции С++ Defa4ka Помощь студентам 4 22.06.2010 13:55
Побитовые операции WinterLord Общие вопросы C/C++ 1 12.10.2008 21:39


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840