Побитовые операции

Тема в разделе "C/C++/C#", создана пользователем Again, 21 дек 2010.

  1. Again

    Again Гость

    Задание 1. Составить ф-цию, которая кодирует символ (инвертирует порядок битов в байте). Ф-ция возвращает закодированный символ.

    Задание 2. Даны позитивные числа x, n, q. Составить программу, которая инвертирует в х n бит, начиная с позиции q (остальные биты не меняются).
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Что значит:
    С трудом понимаю...
     
  3. Again

    Again Гость

    Просто инвертировать биты в байте.
     
  4. ierofant

    ierofant Гость

    Вы уверены? Написано "инвертировать порядок битов". Я так понял сделать седьмой нулевым, шестой первым и т.д.
     
  5. Again

    Again Гость

    Я ответил так, как сам понимаю...
    Скорее всего что Вы правы...
     
  6. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Если инвертировать порядок бит:
    Код (C++):
    char reverse( char c )
    {
    int     i;
    char    v = 0;
    for ( i = 0; i < 8; i++ ) {
    v |= ((c >> i) & 1) << (7 - i);
    }
    return v;
    }
    Если же все-таки инвертировать биты то:
    Код (C++):
        byte = ~byte;
    или же (равнозначно предыдущему):
    Код (C++):
        byte ^= 0xff;
     
Загрузка...

Поделиться этой страницей