Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/34: Рейтинг темы: голосов - 34, средняя оценка - 4.62
18 / 1 / 0
Регистрация: 28.02.2017
Сообщений: 110

Проверка битов в байте

30.08.2017, 15:43. Показов 7558. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день )
Есть функция которая возвращает массив байт, нужно в этом массиве выбрать определённый байт и проверить эго
Что значит проверить, ну например в байт записано число 12 третий и четвёртый биты =1 . Нужно проверить если третий байт равен 1 то выполнить функцию если четвёртый равен единице то выполнить ещё что-то и так до конца . Подскажите как это сделать.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.08.2017, 15:43
Ответы с готовыми решениями:

Реверс битов в байте
Реализую реверс битов в байте. На форуме есть темы об этом. Нашел одну. Прекрасный код, который работает. Но хотелось бы узнать как он...

Разворот порядка битов в байте
С клавиатуры вводится целое число размером в 1 байт (unsigned char = 0..255). Необходимо развернуть порядок битов наоборот в этом числе и...

Зеркальное отображение битов в байте
Всем привет, нужно сделать так, чтобы биты в байте отобразились зеркально, а затем вывести эту бодягу в восьмеричной системе, можно...

3
Каждому свое
 Аватар для Bretbas
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
30.08.2017, 20:35
paulodelon,
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
union BIT_UNION 
{
    struct Bits 
    {
        unsigned b0: 1;
        unsigned b1: 1;
        unsigned b2: 1;
        unsigned b3: 1;
        unsigned b4: 1;
        unsigned b5: 1;
        unsigned b6: 1;
        unsigned b7: 1;
    } bits;
    unsigned char value;
};
 
int main()
{
    BIT_UNION b;
    b.value = 12; // Сюда значение наше, которое хотим увидеть в битах
 
    std :: cout << b.bits.b7 << b.bits.b6 << b.bits.b5 << b.bits.b4 << b.bits.b3 << b.bits.b2 << b.bits.b1 << b.bits.b0;
    return 0;
}
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
30.08.2017, 21:02
paulodelon, биты и байты лучше сразу считать с нуля, а не с единицы, так удобнее будет.
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>
 
void foo(const char* msg)
{
    std::cout << msg << std::endl;
}
 
int main() {
 
    unsigned char array[] = {12, 0xFF};
 
    unsigned char a = array[0]; // проверка нулевого байта
 
    if (a >> 0 & 1) // проверка нулевого бита
        foo("bit 0 is set");
    if (a >> 1 & 1) // проверка первого бита
        foo("bit 1 is set");
    if (a >> 2 & 1) // проверка второго бита
        foo("bit 2 is set");
    if (a >> 3 & 1) // проверка третьего бита и т.д..
        foo("bit 3 is set");
 
    return 0;
}
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
31.08.2017, 10:02
Код проверки i-того бита
C++
1
2
3
4
char b;
if (b&(1<<i)) ...
// или
if ((b>>i)&1) ...
Добавлено через 2 минуты
Пример применения
C++
1
2
3
for(int i=0; i<8; i++)
  if (b&(1<<i))
    cout << "Bit " << i << " is set" << endl;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.08.2017, 10:02
Помогаю со студенческими работами здесь

Циклический сдвиг битов в байте
Привет. Мне нужно в байте (unsigned char) произвести циклический сдвиг. Как я понимаю &gt;&gt; и &lt;&lt; это не циклический сдвиг. Но как...

Разворот порядка битов в байте
С клавиатуры вводится целое число размером в 1 байт (unsigned char = 0..255). Необходимо развернуть порядок битов наоборот в этом числе и...

Циклический сдвиг битов в байте влево или вправо
Кто-нибудь пробовал реализовать такую задачу на С++. Если да, то какой алгоритм? Например, если 32 &lt;&lt; 10, то в результате должны...

Из двух целых чисел А и B собрать одно, состоящее из четных битов A и нечетных битов B...
Нужна помощь с задачей. Из двух целых чисел А и B собрать одно, состоящее из четных битов A и нечетных битов B

Перевод таблицы битов и времени в последовательность битов arduino
доброго времени суток в приведенной ниже таблице левый столбец - биты, правый - их длительность. известно, что единичный сигнал длится от...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru