С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Errantem
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 13
#1

Разворот порядка битов в байте - C++

21.11.2012, 19:07. Просмотров 863. Ответов 3
Метки нет (Все метки)

С клавиатуры вводится целое число размером в 1 байт (unsigned char = 0..255). Необходимо развернуть порядок битов наоборот в этом числе и вывести полученное число на экран в следующей строке.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2012, 19:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разворот порядка битов в байте (C++):

Разворот порядка битов в байте - C++
С клавиатуры вводится целое число размером в 1 байт (unsigned char = 0..255). Необходимо развернуть порядок битов наоборот в этом числе и...

Циклический сдвиг битов в байте - C++
Привет. Мне нужно в байте (unsigned char) произвести циклический сдвиг. Как я понимаю >> и << это не циклический сдвиг. Но как сделать...

Зеркальное отображение битов в байте - C++
Всем привет, нужно сделать так, чтобы биты в байте отобразились зеркально, а затем вывести эту бодягу в восьмеричной системе, можно...

Циклический сдвиг битов в байте влево или вправо - C++
Кто-нибудь пробовал реализовать такую задачу на С++. Если да, то какой алгоритм? Например, если 32 << 10, то в результате должны...

изменения порядка битов в 2-ч байтовом целом - C++
Доброго времени суток!:) Решаю следующую задачу, нужно ввести число, а затем поменять порядок битов в нем на обратный, так вот что-то не...

Перевод таблицы битов и времени в последовательность битов arduino - C++
доброго времени суток в приведенной ниже таблице левый столбец - биты, правый - их длительность. известно, что единичный сигнал длится от...

3
Croessmah
Ушел
Эксперт CЭксперт С++
13558 / 7708 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
21.11.2012, 19:52 #2
как вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
typedef unsigned char UC;
UC reverse_bits(UC num){
    UC rez=0; int n=sizeof(num)*8-1;    
    while(num){
        rez|=(num & 0x1)<<n;
        num>>=1;--n;
    }
    return rez;
}
int main(){
    UC n=35;
    cout<<static_cast<unsigned int>(reverse_bits(n));
    cout<<endl;
    system("pause");
    return 0;
}
1
Errantem
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 13
21.11.2012, 20:06  [ТС] #3
да, но если вводить число с клавиатуры, например 1, то ответ будет 140, а надо 128
0
Croessmah
Ушел
Эксперт CЭксперт С++
13558 / 7708 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
21.11.2012, 20:22 #4
Потому что у Вас получается символ '1', а не число 1.
C++
1
2
3
    int n;
     cin>>n;
    cout<<static_cast<unsigned int>(reverse_bits(static_cast<UC>(n)));
Добавлено через 5 минут
либо можно использовать функцию atoi, для перевода строки в число
1
21.11.2012, 20:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2012, 20:22
Привет! Вот еще темы с ответами:

Операции с побитовыми операторами (число 8 битов и число 9 битов) - C++
Доброго времени суток всем ! Прошу ответа на несложный вопрос (...по крайней мере мне так кажется...) Есть функция: ...

Разворот текста - C++
Господа,понимаю что это все просто но допетрить до конца не могу суть задачи в том что есть текстовый файл,в нем строчка,а то и две...

Разворот матрицы на 90 градусов - C++
Заполнить матрицу случайными числами. Развернуть матрицу на 90o по часовой стрелке. Добавлено через 46 секунд ПОМОГИТЕ СДЕЛАТЬ НЕ...

Боковой разворот матрицы - C++
Дана матрица HxW H – произвольное W – произвольное Задача: поменять столбцы в обратном порядке. Это действие оформить в виде функции. ...


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

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

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