как сделать восстановление после побитового сдвига в С++ ?

Компьютеры программирование программы софт C++

Дан массив char, который сдвинут вправо на 3 бита. Как его восстановить, т.е. сдвинуть влево на 3 бита, но при этом восстановить исходные значения массива, т.е. до сдвига вправо ?
Ответы:
Очевидно же что никак, это не ror/rol, это shl/shr, то что было в тех что вне - выкидывается.
Мимо, даже если делать глобальный сдвиг, что нереально почти и в жизни я никогда не встречал - всё равно крайние биты всего массива(3 слева) пойдут в никуда изначально.
Нет, если выделить лишний байт, то всё влезет. Я исхожу из фразы "Дан массив char, который сдвинут вправо". Массив, а не элементы массива. Но пусть автор решает какой именно смысл заложен там. Такие смещения вполне возможны при оперировании большими числами, хоть и реализация через байты не слишком производительна.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.