Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Порядок битов поменять на обратный, написание функции 
V
    Опции темы
W4FhLF
Дата 14.7.2009, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 2
Всего: 121



Да я вообще-то тоже за подход с масками и сдвигами, но без ассемблера, он там не нужен. 


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
GoldFinch
Дата 14.7.2009, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



W4FhLF, глупо реализовывать bswap если она уже есть
PM MAIL ICQ   Вверх
W4FhLF
Дата 14.7.2009, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 2
Всего: 121



GoldFinch, глупо терять переносимость не получая ничего взамен.

Добавлено через 1 минуту и 43 секунды
Код

// bswap 32-bit word
i = (i >> 16) | (i << 16);



--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
GoldFinch
Дата 14.7.2009, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



W4FhLF, оно у тебя только 16разрядные слова местами меняет, а нада еще байты поменять

меня так просто жаба душит 1 инструкцию на 5-6 операций заменять ради переносимости на не-х86
PM MAIL ICQ   Вверх
W4FhLF
Дата 14.7.2009, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 2
Всего: 121



Цитата(GoldFinch @  14.7.2009,  15:18 Найти цитируемый пост)
W4FhLF, оно у тебя только 16разрядные слова местами меняет, а нада еще байты поменять


Не проблема переделать. Хотя для задачи и не требуется. 

Код

unsigned ReverseBits1(unsigned v)
{
    v = ((v >> 1) & 0x55555555) | ((v & 0x55555555) << 1);
    v = ((v >> 2) & 0x33333333) | ((v & 0x33333333) << 2);
    v = ((v >> 4) & 0x0F0F0F0F) | ((v & 0x0F0F0F0F) << 4);
    v = ((v >> 8) & 0x00FF00FF) | ((v & 0x00FF00FF) << 8);
    return ( v >> 16 ) | ( v << 16 );
}


Цитата(GoldFinch @  14.7.2009,  15:18 Найти цитируемый пост)
меня так просто жаба душит 1 инструкцию на 5-6 операций заменять ради переносимости на не-х86


Что-то твой код у меня вообще неправильно работает. А переносимости у него нет даже в пределах одной аппаратной платформы, между компиляторами (http://www.comeaucomputing.com/tryitout/).

Плюс у тебя в коде идёт вызов доп. процедуры (__bswap), студия не инлайнит её на /O2. Из-за этого происходит сброс конвеера, а это куда хуже 3-4 операций сдвига и or. 




Это сообщение отредактировал(а) W4FhLF - 14.7.2009, 16:54


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
mes
Дата 14.7.2009, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(GoldFinch @  14.7.2009,  14:18 Найти цитируемый пост)

меня так просто жаба душит 1 инструкцию на 5-6 операций заменять ради переносимости на не-х86 

GoldFinch, как всегда в своем репертуаре smile



--------------------
PM MAIL WWW   Вверх
GoldFinch
Дата 14.7.2009, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



W4FhLF, я его не проверял, неудивительно что не работает smile
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0990 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.