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

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

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

C++ Разворот текста
C++ Боковой разворот матрицы
C++ Из двоичной в десятичную+разворот
Разворот порядка битов в байте C++
C++ Разворот матрицы на 90 градусов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11832 / 6811 / 769
Регистрация: 27.09.2012
Сообщений: 16,887
Записей в блоге: 2
Завершенные тесты: 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;
}
Errantem
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 13
21.11.2012, 20:06  [ТС]     Разворот порядка битов в байте #3
да, но если вводить число с клавиатуры, например 1, то ответ будет 140, а надо 128
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11832 / 6811 / 769
Регистрация: 27.09.2012
Сообщений: 16,887
Записей в блоге: 2
Завершенные тесты: 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, для перевода строки в число
Yandex
Объявления
21.11.2012, 20:22     Разворот порядка битов в байте
Ответ Создать тему
Опции темы

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