![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| nevermind |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 15.5.2004 Репутация: нет Всего: нет |
Не подскажите как осуществить ротатцию битов в Си?
(Как ассемблере 11100011 - 11110001 - 11111000 - 01111100 - 00111110 и т.д.) |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
>>n и <<n
если сдвиг на один бит -- >>1 -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| maxim1000 |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 2 Всего: 110 |
не, это - сдвиг ротация, это когда то, что сдвинулось в один конец, потом с другого вылазит если нужно циклически сдвинуть байт, то можно приблизительно так:
-------------------- qqq |
||||
|
|||||
| nevermind |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 15.5.2004 Репутация: нет Всего: нет |
спасибо
|
|||
|
||||
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 4 Всего: 47 |
|
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 2 Всего: 110 |
я не уверен, но мне казалось, что это синонимы... -------------------- qqq |
|||
|
||||
| AISIN |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 27.1.2005 Где: Пушкино Репутация: 1 Всего: 1 |
maxim1000Так и есть! если верить моей большой энциклопедии,
а я привык верить своей энциклопедии...
В моем компиляторе содержиться пример ротации в файле rotr.c. можно использовать в своей программе в виде функции unsigned _rotr(val, shift) вызывается с помощью _lrotr ( unsigned long val, int shift ). И файл rotl.c c функциями unsigned _rotl(val, shift) и вызывается с помощью _lrotr ( unsigned long val, int shift ). Хотя при необходимости их можно вызвать напрямую.
А я что сказал? _lrotr ( unsigned long val, int shift ). Это сообщение отредактировал(а) AISIN - 1.5.2005, 15:47 --------------------
Внимание!!! Внимание!!!Запущена программа по завоеванию мира!!!Выполненно 0,000000000000000000000000000000000000000000000000000002% |
||||
|
|||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: нет Всего: 317 |
Одной ассемблерной инструкцией это делается, под любым процессором есть, обычно RTL/RTR называються. Смотри справочник.
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| nevermind |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 15.5.2004 Репутация: нет Всего: нет |
прошло достаточно много времени, задача уже давно выполенена, решил вот на память запостить работающий вариант.
мож кому пригодится
|
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 7 Всего: 146 |
ИМХО с асмовыми вставками было бы проще
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| nevermind |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 15.5.2004 Репутация: нет Всего: нет |
Я пишу пользуюсь Eclipse, mingw compiler, intel processor. Пытался вставить asm, но никак не получается, выдает постоянно ошибку. Не мог бы ты написать простенький примерчик для наглядности.
|
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 7 Всего: 146 |
Мог бы
Нужны пояснения? ЗЫ Тонкости в гугле по словам : AT&T Assembler GNU Assembler или для начала http://sig9.com/articles/att-syntax http://cs.wwc.edu/~aabyan/Unix/x86.html -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |