-
19.04.2007, 18:42 #1
- Регистрация
- 19.04.2007
- Сообщений
- 2
- Поблагодарили
- 0
- Поблагодарил
- 0
Замена библиотечной функции
Помогите написать для AVR аналог библиотечной функции _lrol_ Keila для 51-проциков. Функция выполняет сдвиг битов данных long(четырех байтов) на любое значение влево. Т.е. сдвиг на 32 возвращает тоже число. Как только ни писал на С однозначного соответствия не получается.
-
20.04.2007, 17:56 #2
- Регистрация
- 05.12.2005
- Адрес
- Волжский, Волгоградская обл.
- Возраст
- 69
- Сообщений
- 59
- Поблагодарили
- 1
- Поблагодарил
- 0
Наверно как-то так:
int a, b;
long x;
for(a = 32; a; a--) {
if(x & 0x80000000) b = 1;
else b = 0;
x <<= 1;
x |= b;
}
Некогда проверять пора бежать домой, пятница всежПавел :: ex: UA9COD
-
22.04.2007, 23:15 #3
- Регистрация
- 19.04.2007
- Сообщений
- 2
- Поблагодарили
- 0
- Поблагодарил
- 0
Предложенный алгоритм работает.Спасибо!
|
Социальные закладки