Для заданного целого А поменять местами старший и младший байты - C (СИ)
Формулировка задачи:
Помогите с заданием:
Для заданного целого А поменять местами старший и младший байты. Вывести число А в шестнадцатеричной системе до и после преобразования.
Решение задачи: «Для заданного целого А поменять местами старший и младший байты»
textual
Листинг программы
/*Для заданного целого А поменять местами старший и младший байты.
Вывести число А в шестнадцатеричной системе до и после преобразования.*/
#include<stdio.h>
#include<stdlib.h>
int main()
{
int k,i,A,B;
printf("vvedite chislo < 65535\n");
scanf("%d",&A);
k = A << 8;
i = A >> 8;
B = (k | i) & 65535;
printf("%x - %x",A,B);
getchar();
getchar();
return 0;
}
Объяснение кода листинга программы
- Ввод числа от 0 до 65535
- Сдвиг числа A влево на 8 позиций (старший байт становится младшим и наоборот)
- Сдвиг числа A вправо на 8 позиций (младший байт становится старшим и наоборот)
- Использование операции
логическое Ис числом 65535 для получения результата, в котором старший и младший байты поменялись местами - Вывод числа А и результата преобразования в шестнадцатеричной системе счисления
- Ввод символа для подтверждения выполнения программы
- Завершение работы программы