Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ASM to C++

65K
20 марта 2011 года
Andrey0
5 / / 26.02.2011
Помогите переписать на С, вроде все просто - сдвиг Х на n битов. Но не хочу ошибиться.
 
Код:
_asm{
     mov  eax, X
     mov  cl,  n
     rol  eax, cl
     mov  X,eax
}
7
20 марта 2011 года
@pixo $oft
3.4K / / 20.09.2006
Вам нужен простой сдвиг или циклический?Если 2е,то всё верно
65K
20 марта 2011 года
Andrey0
5 / / 26.02.2011
Вроде как циклический. Можете помочь сделать на С правильно.
7
20 марта 2011 года
@pixo $oft
3.4K / / 20.09.2006
А,не вчитался в тему сразу…Думал,надо правильность проверить:)
Разве в C есть циклические сдвиги?
278
20 марта 2011 года
Alexander92
1.1K / / 04.08.2008
А кто мешает написать? :)

Код:
int shift(int X, int bits_num, bool direction /* true: shift right, false: shift left */) {
  if (direction)
     return ((X >> bits_num) | (X << (sizeof(int) * 8) - bits_num));
  else {
    for (int i = 0; i < bits_num; i++) {
      unsigned int z = X & 0x80000000;
      X = (X << 1) | (z >> (sizeof(int) * 8 - 1));
    }
    return X;
  }
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог