Форум программистов, компьютерный форум CyberForum.ru

Функция, зеркально отображающая битовое представление числа - C++

Восстановить пароль Регистрация
 
ZimOne
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 80
19.11.2014, 11:13     Функция, зеркально отображающая битовое представление числа #1
Необходимо написать программу которая зеркально переворачивает битовое представление целого числа, помогите плз
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2014, 11:13     Функция, зеркально отображающая битовое представление числа
Посмотрите здесь:

C++ Представление числа
C++ Битовое представление
C++ Функция strtok. Представление телефонного номера в виде строки.
C++ Битовое представление
Побитовое представление числа. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
2787 / 1433 / 393
Регистрация: 18.10.2014
Сообщений: 2,637
19.11.2014, 11:16     Функция, зеркально отображающая битовое представление числа #2
Цитата Сообщение от ZimOne Посмотреть сообщение
зеркально переворачивает битовое представление целого числа
Переворачивает относительно какой точки? Что должно получиться, если перевернуть число 1?

Вот программа, которая переворачиват представление числа: Придумать условие
Но она перворачивает относительно середины набора значащих битов числа, а не относительно середины того типа, в котором число хранится.
ZimOne
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 80
19.11.2014, 11:17  [ТС]     Функция, зеркально отображающая битовое представление числа #3
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Переворачивает относительно какой точки?
то же самое что и отобразить массив в обратном порядке
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
2787 / 1433 / 393
Регистрация: 18.10.2014
Сообщений: 2,637
19.11.2014, 18:07     Функция, зеркально отображающая битовое представление числа #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от ZimOne Посмотреть сообщение
то же самое что и отобразить массив в обратном порядке
Вопрос в том, какого размера этот массив. Если число 5 (= 1012) хранится в 32-битном целом типа 'unsigned', то сколько битов надо развернуть: 3 (фактическая ширина числа 5) или 32 (физическая ширина типа)?

Ну вот, например, функция, которая "разворачивает" число типа 'unsigned'

C++
1
2
3
4
5
6
7
8
9
10
11
unsigned reverse_bits(unsigned n)
{
  unsigned n_mirror = 0;
  for (unsigned n_bits = CHAR_BIT * sizeof n; n_bits > 0; --n_bits)
  {
     n_mirror <<= 1;
     n_mirror |= (n & 1);
     n >>= 1;
  }
  return n_mirror;
}
Yandex
Объявления
19.11.2014, 18:07     Функция, зеркально отображающая битовое представление числа
Ответ Создать тему
Опции темы

Текущее время: 03:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru