Изменение порядка битов в символе на противоположный - C (СИ)
Формулировка задачи:
Пожалуйста помогите написать код на СИ!
Задание звучит так : Напишите программу, которая меняет порядок битов в символе на противоположный
Решение задачи: «Изменение порядка битов в символе на противоположный»
textual
Листинг программы
#include <stdio.h> #include <limits.h> void binprn(unsigned char c) { unsigned char i = 0x80; for ( ; i; i >>= 1 ) printf("%c", ( c & i ) ? '1' : '0'); } unsigned char reverse_byte(unsigned char n) { unsigned char r = 0, i; for ( i = 0; i < CHAR_BIT; ++i ) { r <<= 1; r |= n & 1; n >>= 1; } return r; } int main(void) { unsigned char inc; while ( printf("Number [0-255]: ") && scanf("%hhu", &inc) == 1 ) { binprn(inc); printf(" -> "); binprn(reverse_byte(inc)); printf("\n"); } return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
и - Функция binprn принимает в качестве аргумента символ c и выводит его двоичное представление
- В функции reverse_byte происходит инвертирование битов байта n
- В функции main происходит запрос на ввод числа от 0 до 255, затем выводится двоичное представление введенного числа и его инвертированное представление
- Код выполняется до тех пор, пока пользователем не будет введено неверное значение или не будет выполнено условие окончания цикла
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д