Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
44 / 44 / 12
Регистрация: 05.04.2015
Сообщений: 345
1

Побитовые операции

18.06.2017, 18:52. Показов 1304. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть число 0x7с1b. Перевожу его в двоичный вид - 0111110000011011. Каждый бит за что то отвечает. Но некоторые биты сгруппированы. То есть первый бит - отдельно, второй отдельно и т.д. Надо просто проверить их значение. Тут несложно. 8 и 9 идут вместе. Как с помощью побитовых операции сравнить 8 и 9 биты с двоичными числами 00, 01,10,11; 10-14 биты тоже сгруппированы и их тоже надо сравнить по аналогии с 8 и 9 но уже с 5 битовым числом
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.06.2017, 18:52
Ответы с готовыми решениями:

Побитовые операции
Доброго времени суток. Читаю KR, добрался до упражнения 2.9: Применительно к числам, в...

Побитовые операции
Даны два целых положительных числа А и В.: 1. Определить значение каждого бита числа А. 2....

Побитовые операции
При написании функций можно использовать только следующее: - целочисленные константы; -...

Побитовые операции
Задача: Функция setbits(x, p , n, y) которая возвращает x, в котором n битов, начиная с позиции p,...

4
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
18.06.2017, 19:12 2
Для 8 и 9 битов:
C
1
2
3
4
5
6
7
y = (x >> 8) & 3; // 3 равно 11 в двоичной системе
switch (y) {
  case 0: ...
  case 1: ...
  case 2: ...
  case 3: ...
}
Это если биты считаются с 0. Если с 1, то сдвигаем не на 8, а на 7.
0
44 / 44 / 12
Регистрация: 05.04.2015
Сообщений: 345
18.06.2017, 19:31  [ТС] 3
Забыл написать что 0x7c1b - это не константа. Там может быть другое число.
y = (x >> 8) & 3 . Так слева останутся цифры. Может сдвигать сначала влево на 5 (биты начинаются с нуля) а потом влево на 8, а потом сравнить?
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
18.06.2017, 19:46 4
Лучший ответ Сообщение было отмечено kolts как решение

Решение

Цитата Сообщение от kolts Посмотреть сообщение
Так слева останутся цифры.
Мы их отсекаем с помощью & 3. Останутся только нужные нам разряды, сдвинутые в начало числа.

Добавлено через 1 минуту
Цитата Сообщение от kolts Посмотреть сообщение
Забыл написать что 0x7c1b - это не константа. Там может быть другое число.
У меня x - это переменная, в ней может быть всё что угодно.
0
44 / 44 / 12
Регистрация: 05.04.2015
Сообщений: 345
18.06.2017, 20:22  [ТС] 5
Цитата Сообщение от likehood Посмотреть сообщение
Мы их отсекаем с помощью & 3
Точно, я не догадался. Не имел дело раньше с битовыми операциями.
Цитата Сообщение от likehood Посмотреть сообщение
У меня x - это переменная, в ней может быть всё что угодно.
Я просто думал что слева остаются цифры и в свитче мы сравниваем с константами. Перемешались в голове биты байты хексы. Но сейчес разобрался.
0
18.06.2017, 20:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.06.2017, 20:22
Помогаю со студенческими работами здесь

Задача на побитовые операции
Дана такая задача: 1. Реализовать задание при помощи побитовых логических операций. Программа...

Побитовые операции с float
Установить в заданное пользователем состояние определённое количество рядом стоящих бит, номер...

Побитовые операции, основы
Вывести в десятичном виде поле длины k двоичного представления данного натурального числа слева от...

Задача на падежи (побитовые операции)
Есть задача: К введенному числу (от 0 до 99) приписать слово «копеек» в правильном падеже В...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru