Изменение порядка битов в символе на противоположный - 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;
}

Объяснение кода листинга программы

  1. Включаются необходимые заголовочные файлы и
  2. Функция binprn принимает в качестве аргумента символ c и выводит его двоичное представление
  3. В функции reverse_byte происходит инвертирование битов байта n
  4. В функции main происходит запрос на ввод числа от 0 до 255, затем выводится двоичное представление введенного числа и его инвертированное представление
  5. Код выполняется до тех пор, пока пользователем не будет введено неверное значение или не будет выполнено условие окончания цикла

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5
Похожие ответы