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

Переставить биты в обратном порядке для каждого байта - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Подсчитать количество чисел массива, отличающихся от числа 3 не более чем на 0.5 http://www.cyberforum.ru/cpp-beginners/thread683795.html
Произвести следующую обработку 10 вещественных чисел: подсчитать количество чисел, отличающихся от числа 3 не более чем на 0.5, и сумму отрицательных чисел.
C++ Дано предложение. Определить долю букв "а" в нём Программа не компилируется. Где то ошибка. #include <iostream> #include <string> using namespace std; int main () { string s; getline (cin.s); string a="a"; http://www.cyberforum.ru/cpp-beginners/thread683791.html
C++ Все перестановки n чисел, которие в суме дадут r
Нужно сделать програму которая перебирает все перестановки n чисел, которие в суме дадут r. Например n=2 i r=2 тогда, 20 02 11 Не знаю, за что зацепится. Спасибо!
C++ Не правильная блок-схема
http://s56.***********/i153/1210/14/fe94a7895518.jpg Помогите избежать пересечения линий. Я уже голову сломал
C++ сколько з\п младшего разработчика С++? в среднем?ы http://www.cyberforum.ru/cpp-beginners/thread683771.html
сколько з\п младшего разработчика С++? в среднем?ы
C++ Указателями поменяйте местами элементы массива Дан массив целых чисел. Воспользовавшись указателями, поменяйте местами элементы массива с четными и нечетными индексами (т.е. те элементы массива, которые стоят на четных местах, поменяйте с элементами, которые стоят на нечетных местах). подробнее

Показать сообщение отдельно
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,917
Записей в блоге: 1
29.10.2012, 23:16     Переставить биты в обратном порядке для каждого байта
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main(){
unsigned char byte;
printf("Input a byte:"); scanf("%X", &byte);printf("\nbefore:%x", byte);
byte=
((byte&0x01)<<7)|
((byte&0x02)<<5)|
((byte&0x04)<<3)|
((byte&0x08)<<1)|
((byte&0x10)>>1)|
((byte&0x20)>>3)|
((byte&0x40)>>5)|
((byte&0x80)>>7);
printf("\nafter %x\n",byte);
return 0;
}
Добавлено через 12 минут
или же
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main(){
  unsigned char a, b, i, t;
  printf("Input a byte:"); scanf("%X", &a);printf("\nbefore:%x", a);
  b=0;
  j=0x80;
  i=1;
  for(t=7; t>0; t-=2){
    b|=((a&i)<<t);
    b|=((a&j)>>t);
    j>>=1;
    i<<=1;
  }
  printf("\nafter %x\n",b);
  return 0;
}
 
Текущее время: 03:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru