Я немного нового в C-программирования и я немного застрял с этим вопросом:Извлечение битов в C
Предположим, что у вас есть программа C с знаковое целое число (Int) переменных х, у, г , Все переменные содержат некоторые произвольные значения. Напишите C-инструкцию, которая извлекает биты с индексом с 17 по 13 из x и помещает их как младшие значащие биты в z и извлекает наименее 3 значащих бита y и помещает их в биты с индексом 7-5 в г. Никакие другие биты z не должны быть изменены, кроме 8 бит, которые были извлечены из x и y. Примечание , что бит-индекс 0 является младшим значащим битом. Ваш ответ должен содержать один сингл C , а также короткие заметки о том, что делают разные части инструкции.
Я понимаю, что извлечение - это то же самое, что и перенос, если я не ошибаюсь.
Но мог ли кто-нибудь, пожалуйста, дать мне несколько советов о том, как решить этот вопрос?
Спасибо, вся помощь будет подтверждена!
Нет, извлечение - это * не * то же, что и перенос. –
Назначение имеет меньше общего с C и больше, чтобы вы понимали базовый бит-скриптинг. Вещи, о которых вам нужно узнать, это операции побитового и оперативного, побитового или операционного и побитового сдвига (слева и справа). Кроме того, сначала попробуйте сделать это на бумаге, чтобы получить его прямо там. И последний намек, попытайтесь выполнить операции по одному, и когда вы получили это правильно *, то * попробуйте сделать это в одно выражение (по одному шагу за раз). –
Я не буду делать это за вас, но посмотрите на поразрядные AND '&' и побитовые OR '' 'операторы для извлечения битов и переместите их для перемещения. –