Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
tottukki
0 / 0 / 0
Регистрация: 27.01.2018
Сообщений: 37
1

Переставить в обратном порядке биты двоичного целого числа

25.02.2018, 21:51. Просмотров 597. Ответов 5
Метки нет (Все метки)

Целое положительное число m записывается в двоичной системе счисления, разряды (в этой записи) переставляются в обратном порядке и число переводится в десятичную систему счисления. Получившееся число принимается за значение функции Б(М).

Требуется написать программу, которая для заданного m вычислит B(m).

Входные данные
Входной файл содержит натуральное число М (М ≤ 109).

Выходные данные
В выходной файл выведите значение Б(М).

Примеры:
1) Ввод:4 Вывод: 1
2) Ввод:6 Вывод:3
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2018, 21:51
Ответы с готовыми решениями:

Переставить биты в обратном порядке для каждого байта
Переставить биты в обратном порядке для каждого байта. Решите пожалуйста

Переставить цифры числа в обратном порядке
Задача. Вводится последовательность целых положительных чисел, 0 – конец последовательности. Для...

Нужно переставить числа в обратном порядке
Даны 4 числа. Организуйте перестановку данных чисел в обратном порядке. Перестановку двух чисел...

Переставить десятичные цифры числа в обратном порядке
Напишите рекурсивное решение, чтобы получить обратное заданное целое число. Функция должна...

Переставить десятичные цифры числа в обратном порядке
например 12345, выдать 54321. Как сделать цикл? чтобы он сначала выделил 5, потом 4,потом 3 и тд....

5
Jabbson
Эксперт по компьютерным сетям
3458 / 2501 / 780
Регистрация: 03.11.2009
Сообщений: 7,939
Записей в блоге: 3
26.02.2018, 05:20 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <algorithm>
#include <iostream>
 
int reverse_bin(int num) {
    std::string result;
    while (num > 0) {
        result.append(std::to_string(num % 2));
        num /= 2;
    }
    return std::stoi(result, nullptr, 2);;
}
 
 
int main() {
    int num = 6;
    std::cout<<reverse_bin(num);
}
0
zss
Модератор
Эксперт С++
8386 / 7429 / 4606
Регистрация: 18.12.2011
Сообщений: 19,681
Завершенные тесты: 1
26.02.2018, 09:22 3
Jabbson, забыли добавить '0'
C++
1
result.append(std::to_string('0'+num % 2));
0
AlexVRud
483 / 194 / 73
Регистрация: 04.07.2014
Сообщений: 549
26.02.2018, 10:08 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <initializer_list>
 
int B(int m)
{
  int b = 0;
  while (m) {
    b <<= 1;
    b |= m & 1;
    m >>= 1;
  }
  return b;
}
 
int main()
{
  for (int m : {4, 6}) {
    printf("B(%d) = %d\n", m, B(m));
  }
  return 0;
}
0
Новичок
Модератор
1533 / 1000 / 470
Регистрация: 17.07.2012
Сообщений: 5,087
Завершенные тесты: 3
26.02.2018, 18:39 5
Цитата Сообщение от zss Посмотреть сообщение
Jabbson, забыли добавить '0'
zss, не нужно, потому что используется функция std::to_string которая переведет число в строку(и получится тот символ что надо).

Добавлено через 4 минуты
А если добавлять '0' то наоборот прога упадет, потому что нет перегрузки этой функции которая принимает char, следовательно '0' функция превратит в 48, а таких цифр в двоичной записи числа быть не может.
0
zss
Модератор
Эксперт С++
8386 / 7429 / 4606
Регистрация: 18.12.2011
Сообщений: 19,681
Завершенные тесты: 1
26.02.2018, 21:09 6
Новичок, пардон, я подумал, что тут просто набирается строка символов.
0
26.02.2018, 21:09
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.02.2018, 21:09

Рекурсивно вывести цифры целого числа в обратном порядке
5. Записать рекурсивную программу для вывода цифр данного целого числа в обратном порядке. ...

Функция, переставляющая цифры заданного целого числа в обратном порядке
Составить и проверить функцию которая переставляет цифры заданного целого числа в обратном порядке...

Напечатать в обратном порядке цифры десятичной записи целого не минусового числа N.
Помогите с программой Рекурсивно описать процедуру RevPrint (N), которая печатает в обратном...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru