Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2011, 06:59   #1
hardorsoft
Пользователь
 
Регистрация: 13.05.2011
Сообщений: 35
По умолчанию Задача на побитовые операции в Си.

Здравствуйте!
Есть функция getbits(x, p, n), которая возвращает (сдвинутыми к правому краю) начинающиеся с позиции р поле переменной х длиной n битов. Предполагается, что крайний правый бит имеет номер 0, и что n и p - разумно заданные положительные числа.

Код:
getbits(unsigned x, unsigned p, unsigned n)  /* get n bits from position p */
{
 return((x >> (p+1-n)) & ~(~0 << n));
}
Нужно переписать функцию таким образом, чтобы биты отсчитывались слева на право.
Вот что у меня получилось:

Код:
getbits(unsigned x, unsigned p, unsigned n)  /* get n bits from position p */
{
  return((x >> (p-1)) & ~(~0 << n));
}
Мне важно правильно я решил задачу или нет?
Ваше мнение?
Решенные мною и не только задачи на Си можно смотреть здесь:
http://cirishen.blogspot.com/

Последний раз редактировалось hardorsoft; 20.05.2011 в 08:39.
hardorsoft вне форума Ответить с цитированием
Старый 20.05.2011, 08:44   #2
hardorsoft
Пользователь
 
Регистрация: 13.05.2011
Сообщений: 35
По умолчанию

Проверяю вроде правильно.
Решенные мною и не только задачи на Си можно смотреть здесь:
http://cirishen.blogspot.com/
hardorsoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
побитовые операции serega28 Паскаль, Turbo Pascal, PascalABC.NET 11 25.01.2011 14:02
Побитовые операции Unique Паскаль, Turbo Pascal, PascalABC.NET 3 29.08.2010 18:50
побитовые операции Александе еть я Общие вопросы C/C++ 2 18.04.2010 13:31
побитовые операции Dimarik Общие вопросы C/C++ 7 16.04.2010 19:27
Побитовые операции WinterLord Общие вопросы C/C++ 1 12.10.2008 22:39