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

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

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

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

Ответ
 
Опции темы
Старый 10.10.2019, 11: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 в 11:36.
Крупнов вне форума   Ответить с цитированием
Старый 10.10.2019, 11:35   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 5,945
По умолчанию

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


22:29.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.