Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024

Как проверить 2 бита?

07.07.2017, 15:23. Показов 2055. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
BorlandC++3.0 MS-DOS, надо проверить 5й бит равен 1, а 6й бит = 0, не получается их проверить в одном IF, если проверяю по отдельности, то все получается, но хочется написать код покороче и не могу найти ошибку, можете помочь? (биты считаю с первого по порядку, а не с нулевого)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
int prim=0x10; //00[COLOR="Red"][B]01[/B][/COLOR]0000
if(prim && 0x10)
printf("+");
else
printf("-");
 
if(!(prim && 0x20))
printf("+");
else
printf("-");
 
return 0;
Первый Иф, который проверяет 5й бит нормально отрабатывает и выводит плюс, а второй Иф выводит минус и не могу понять в чем ошибка, вот код в переменной prim=00010000, ноль в 6м бите проверяю через маску 0x20 в двоичном виде будет 00100000, тогда если в 6м бите 0 в результате логичекого И будет везде 0, а если 1 в 6м бите, то в результате логического побитового И , в 6м бите будет 1 (в моем примере в 6м бите 0, после логического И в результате будет 0, а второй Иф результат инвертирует и 0 превращается в 1, и на экран должен выйти плюс, а выходит минус) что не так в коде?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.07.2017, 15:23
Ответы с готовыми решениями:

Как проверить наличие бита в байте
Здравствуйте!! Собственно вопрос, можно ли как нибудь записать условие if на проверку бита в байте(D0 D1 D2 D3 D4 D5 D6 D7)?? Смысл в...

Создать 2 переменные, одна из которых хранит 2 старших бита исходного числа, другая 2 младших бита этого числа
Дано число. Создать 2 переменные, одна из которых хранит 2 старших бита исходного числа, другая 2 младших бита этого числа. код частично...

Извлечь 3 бита числа A, начиная со второго и вставить их в число B, начиная с первого бита
Ввести целое A. Извлечь 3 бита числа A, начиная со второго и вставить их в число B, начиная с ервогоп бита. B=1A05h.

3
 Аватар для RunningMan
278 / 186 / 75
Регистрация: 12.04.2017
Сообщений: 1,088
Записей в блоге: 2
07.07.2017, 15:35
Вместо
Цитата Сообщение от седьмой Посмотреть сообщение
&&
нужно побитовое и
&


Цитата Сообщение от седьмой Посмотреть сообщение
надо проверить бит равен 1,0,
C++
1
res = value & (1 << numBit);
1
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
07.07.2017, 15:41
Цитата Сообщение от седьмой Посмотреть сообщение
rim && 0x20
C++
1
2
3
if((prim & 0x30) == 0x10) {
   //Шестой бит 0, пятый - 1.
}
1
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
10.07.2017, 08:38  [ТС]
Спасибо большое за помощь, попробую

Добавлено через 27 минут
Croessmah, Спасибо, все отработалось как надо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.07.2017, 08:38
Помогаю со студенческими работами здесь

Как считать блок в 64 бита?
ок, для DES мне надо считать блок в 64 бита но считывать я могу только байты, поэтому мне надо считать 8 байт потом один байт в...

Как считывать из файла данные по 64 бита
надо из созданого мной myfile.txt считывать информацию по блокам в 64 бита(в дальнейшем разбить их на 16 битные блоки),не очень хорошо...

Как считать последние 3 бита числа?
Подскажите пожалуйста! К примеру есть переменная int n=58; как считать в другую переменную 3 последних бита данного числа?

Как прочитать несколько байт из файла с n-го бита
Требуется считать байты из файла заданным смещением; смещение задается в БИТАХ; Например: c 3-го бита 8-го байта прочитать 21 байт;

Как разбить массив на 5 частей по 4 символа (бита)?
Здравствуйте! Подскажите, пожалуйста, как разбить массив на 5 частей по 4 символа (бита). Получается, вывести только первых четыре...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru