![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| DmbITpo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 10.4.2008 Репутация: нет Всего: нет |
В общем надо поменять местами первый бит и последний, второй и предпоследний и т.д.
Вот такая вот задачка. Надо решить. Поменять местами эти биты надо в числе двоичном, например таком: 0010001. Результат должен быть 1000100 . В принципе она не сложная, если загнать это число в массив и потом менять местами элементы. Но вся соль состоит в том, что нужно _обязательно_ исспользовать побитовые операции (типа &, | или ^). Задание в общем такое : Дан текст, надо в каждой его букве таким вот образом переставить биты. Следовательно получиться другой символ. Типа закодировать надо текст таким образом. У меня уже мозги кипят. Ничё умного не могу придумать. Может вы поможете ? Язык программирования - Си. Но если вы знаете как написать на другом языке - пишите. Мне важен именно алгоритм.... Может хоть какие-нить идеи подкините... Это сообщение отредактировал(а) DmbITpo - 10.4.2008, 22:34 |
|||
|
||||
| korian |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 3 Всего: 17 |
Это сообщение отредактировал(а) korian - 10.4.2008, 18:52 |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
Это сообщение отредактировал(а) vinter - 10.4.2008, 18:54 |
|||
|
||||
| korian |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 3 Всего: 17 |
vinter, в вашем коде nDst == (nSrc & 0xFFFF).
Это сообщение отредактировал(а) korian - 10.4.2008, 18:55 |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
угу, забыл две инструкции добавить
|
|||
|
||||
| korian |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 3 Всего: 17 |
все равно не то =)
во первых условие задачи другое, а во вторых нолики не там |
|||
|
||||
| DmbITpo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 10.4.2008 Репутация: нет Всего: нет |
korian,ого! это просто гениально! неужели ты просто мыслишь битовыми операциями? =) Спасибо огромное!
Щас попробую набрать этот код! Всё работает! огромное спасибо тебе!! жаль что тут нет снопочки СПАСИБО.... Это сообщение отредактировал(а) DmbITpo - 10.4.2008, 19:18 |
|||
|
||||
| DmbITpo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 10.4.2008 Репутация: нет Всего: нет |
хм...при тестировании возникла проблемка.
Попробуй , например перевернуть строку "011"; Получается какой-то бред.... |
|||
|
||||
| korian |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 3 Всего: 17 |
мой пример работает тока с 8 битами.
и строка 011 (00000011) преобразовывается в 11000000 |
|||
|
||||
| MastEdm |
|
|||
![]() Master ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 3.12.2005 Где: Москва, МГИУ Репутация: 1 Всего: 2 |
Вот реверс 32-битной последовательности
|
|||
|
||||
| blinded |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 16.2.2008 Репутация: нет Всего: нет |
Все прсто замечательно. Вот только со знаковыми типами результат сдвига влево implementation defined
|
|||
|
||||
| MastEdm |
|
|||
![]() Master ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 3.12.2005 Где: Москва, МГИУ Репутация: 1 Всего: 2 |
Ну можно схитрить:
Правда нужно реально представлять, что из этого получится Это сообщение отредактировал(а) MastEdm - 10.4.2008, 21:35 |
|||
|
||||
| korian |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 3 Всего: 17 |
||||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
это еще почему? -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
Что то условие с примером не совпадают )) во вторых не указано размерность числа, а также ее постоянность для 8 битного например подходит такая конструкция :
P.S. где то эта тема уже обсуждалась Это сообщение отредактировал(а) mes - 10.4.2008, 22:08 |
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |